为了账号安全,请及时绑定邮箱和手机立即绑定

以下错误是display为模糊的调用重载函数?请教一下为什么?

以下错误是display为模糊的调用重载函数?请教一下为什么?

ITMISS 2021-12-31 11:07:13
#include<iostream>using namespace std;double dispaly(double a){return a;}int display(int a){return a;}char dispaly(char a){return a;}int main(){double x=1.11;int y=9;char z='abc';cout<<dispaly(x);cout<<dispaly(y);cout<<dispaly(z);return 0;}char z 问题 已经发现了
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

仔细检查一下单词拼写:
double dispaly(double a)
{
return a;
}
int display(int a) //拼写错误,因该写成:dispaly,或者将dispaly 全部写成 display
return a;
}
char dispaly(char a)
{
return a;
}

查看完整回答
反对 回复 2022-01-03
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

最简单的方案是将第二个构造函数的第二个形参的默认值取消,即去掉“=21”,应该说你如果希望提供默认值的话,你应该将第一个构造函数融入到第二个构造函数中去,应该说你的设计是有点问题的。
报错出现的原因:因为提供了默认构造函数,那么当你调用形式为”Person(a);//a是char*型”时就会出现2个等同地位的候选构造函数,即你所写的2个构造都是合法的候选函数,编译器不知道你指的是哪个函数了。

查看完整回答
反对 回复 2022-01-03
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号