c++中出现模糊调用重载函数(ambiguous call to overloaded function),怎么改才对?

 我来答
hatianxiao
2017-04-12 · TA获得超过2047个赞
知道大有可为答主
回答量:2295
采纳率:77%
帮助的人:1282万
展开全部
最简单的方案是将第二个构造函数的第二个形参的默认值取消,即去掉“=21”,应该说你如果希望提供默认值的话,你应该将第一个构造函数融入到第二个构造函数中去,应该说你的设计是有点问题的。
报错出现的原因:因为提供了默认构造函数,那么当你调用形式为”Person(a);//a是char*型”时就会出现2个等同地位的候选构造函数,即你所写的2个构造都是合法的候选函数,编译器不知道你指的是哪个函数了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式