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

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 02:18
    关注

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

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 VAE代码如何画混淆矩阵
  • ¥15 求遗传算法GAMS代码
  • ¥15 雄安新区高光谱数据集的下载网址打不开
  • ¥66 android运行时native和graphics内存详细信息获取
  • ¥100 求一个c#通过CH341读取数据的Demo,能够读取指定地址值的功能
  • ¥15 rk3566 Android11 USB摄像头 微信
  • ¥15 torch框架下的强化学习DQN训练奖励值浮动过低,希望指导如何调整
  • ¥35 西门子博图v16安装密钥提示CryptAcquireContext MS_DEF_PROV Error of containger opening
  • ¥15 mes系统扫码追溯功能
  • ¥40 selenium访问信用中国