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

在有多个形参的函数里传一个参数,同时还有函数承载怎么办?(直接上代码)

要是这样子呢: int add(int a, int b = 2); int add(int a, int b = 2,, int c = 3); int add(int a, int b){ return a+b; } int add(int a, int b, int c){ return a + b + c; } void main() { int i = 1; add(i); } //既然可以只传一个实参,那么现在到底会调用哪个函数?

正在回答

2 回答

挺佩服你的细心,如果这样写的函数重载,编译器由于 函数的二义性 编译器自己也SB了,不知道选哪个函数重载好,就会出现类似的编译错误 “error C2668: 'add' : ambiguous call to overloaded function”;

0 回复 有任何疑惑可以回复我~
#1

qq_SillyFox4422909 提问者

非常感谢!
2017-03-02 回复 有任何疑惑可以回复我~
#2

qq_SillyFox4422909 提问者

细心…… 也许是我的学习方法与众不同吧,我遇到不懂的东西经常刨根问底,甚至很多时候都不好意思问下去了,问得别人都烦了。。。 要是自己看书找资料自个钻研就会花很长时间,到头来可能就变为徒劳,所以结果不尽人意、差强人意,最终不了了之。 真羡慕别人能够快速学会某样东西,难道这就是细节决定成败 与 成大事者不拘小节矛盾纠纷吗? 总之谢谢你的解答~
2017-03-02 回复 有任何疑惑可以回复我~

这种情况程序会报错,有3个int类型形参的函数已经包括2个的情况了,你可以只写后面的那种情况,把c默认等于0就好了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

在有多个形参的函数里传一个参数,同时还有函数承载怎么办?(直接上代码)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信