ChiLi_Lin 2018-01-16 09:51 采纳率: 60%
浏览 1316
已结题

C++ 函数重复声明时,添加默认实参问题。

在原书《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

请问为什么报错?怎么解决?

  • 写回答

10条回答 默认 最新

  • IT小狼狗 2018-01-16 10:18
    关注

    编译出错了 还能正确执行? 你这个是启动上一次成功的实例的结果吧,

    评论

报告相同问题?