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

#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 问题 已经发现了

ITMISS
浏览 167回答 2
2回答

开满天机

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

德玛西亚99

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

相关分类

Python
Java