在原书《C++ Primer 5th》中(P212),如下写到:在原有默认值的下,添加其他默认值是正确的声明。
但是在测试时,编译器(vs2015)却报错了。
执行程序时,可以正确执行,但是还是会输出这个错误。
void screen(int w, int h, string s) { cout << (w * h) << " " + s; }
void screen(int w, int h, string s = "stringgggg");
void screen(int w = 32, int h = 16, string s);
void main()
{
screen();
}
输出结果:
512 stringgggg
请问为什么报错?怎么解决?