RT
比如一个Test类,有一个构造函数Test(),还有一个构造函数Test(int a=0,int b=0),那么执行Test()时候程序会调用哪一个?
C++带默认参数的构造函数和重载的构造函数是否可能会发生调用的歧义?如何解决?
答案:3 悬赏:10
解决时间 2021-04-22 01:29
- 提问者网友:妖精ξ也會哭
- 2021-04-21 21:51
最佳答案
- 二级知识专家网友:野性且迷人
- 2021-04-21 22:08
如果带默认参数的构造函数去掉默认参数后,与重载的构造函数形式一致
那么就会出现二义性
既然带默认参数的构造函数能够与重载的构造函数出现二义性。说明你重载的构造函数没有意义。
他并不能区分一种构造类型。
也就是说,你直接用带默认参数的构造函数来代替重载的那个构造函数就可以了
那么就会出现二义性
既然带默认参数的构造函数能够与重载的构造函数出现二义性。说明你重载的构造函数没有意义。
他并不能区分一种构造类型。
也就是说,你直接用带默认参数的构造函数来代替重载的那个构造函数就可以了
全部回答
- 1楼网友:余生继续浪
- 2021-04-21 23:47
有歧义。
已经有了Test(int a=0, int b=0)int没必要再定义Test()
- 2楼网友:懂得ㄋ、沉默
- 2021-04-21 23:23
要求两个函数的参数表不同(类型或者个数)。进行函数调用时,系统会根据函数名和参数表唯一确定调用哪一个函数。当程序中有模版函数和非模版函数时,优先调用非模版函数,即一般函数。
再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯