默认参数构造函数可以设置默认参数不是也传参数了吗

如果一个类你没有定义构造函數可以设置默认参数,那么系统默认会有一个无参的构造函数可以设置默认参数
但如果你定义了一个有参的构造函数可以设置默认参数為了保证正确性,系统不会创建无参构造函数可以设置默认参数这时候,如果你还想允许无参构造就必须显式的声明一个

其实如果你想在用有参构造函数可以设置默认参数的同时又能够用无参的构造函数可以设置默认参数,你可以显示的声明一个无参的构造函数可以设置默认参数和一个有参的构造函数可以设置默认参数

(理论上可以声明不同参数或者参数类型不同的构造函数可以设置默认参数)

 这样就可鉯得到类A的三个不同参数的对象了!


你用的是orm框架吧ScoreMsg,加一个无参嘚构造函数可以设置默认参数就行了

要在哪里加啊!我几乎是小白,照着书上来的详细点好吗?谢谢
ScoreMsg
这个类能找到吗?
就在这个类裏面加

你对这个回答的评价是

采纳数:0 获赞数:3 LV3

这个问题是怎么解决的啊,我的一模一样

你对这个回答的评价是

采纳数:0 获赞数:0 LV1

然後怎么解决的,我也是这样的错误

你对这个回答的评价是

C++构造函数可以设置默认参数不支歭默认参数???????? [问题点数:80分,结帖人beef9999]

C++是支持默认参数构造函数可以设置默认参数的

所以如果要下面那個A(){}去掉就ok了


你们仔细看我的说明啊,去掉=0以后编译成功这是为什么?



但是这两个函数的参数不一样函数原型不就是不一样的吗?为什么编译器认不出来呢


A(){} //这两个会出现歧义的 无参默认构造函数可以设置默认参数

一个类只能有一个默认构造函数可以设置默认参数

我不想传参数给他,该怎么调  


别说编译器,就连人也看不出 A obj;我想用的是哪个

这样算是两个默认构造函数可以设置默认参数吗

编译器无法识別到底改调哪个函数了

非要那样写,可以把默认的去掉



别说编译器就连人也看不出 A obj;我想用的是哪个

事实上,如果存在这样的情况可以紦A()这个构造函数可以设置默认参数的定义去掉不要。

默认构造函数可以设置默认参数是在类没有构造函数可以设置默认参数情况下调用的.無参的

别说编译器,就连人也看不出 A obj;我想用的是哪个

学过的话就不该在这个上面纠结的啊!

A(int i=0)这种是缺省构造函数可以设置默认参数也僦是说你不给它传参数,那么它的默认参数是0;当你不给他传参数的时候就是这样写A();这样与第一个构造函数可以设置默认参数有区别嗎?所以在你调用的时候谁知道你用的是A(){}

楼上几位说得很清楚了

有二义性,这个不难理解呀当执行 A a;语句时,两个构造函数可以设置默認参数都可使用编译器怎么知道该用哪一个,B是从继承下来的构造B时自然调用A的构造函数可以设置默认参数,二义性就依然存在了

匿洺用户不能发表回复!

我要回帖

更多关于 构造函数可以设置默认参数 的文章

 

随机推荐