C++中,默认构造函数、无参构造函数、带有默认值的构造函数,究竟怎么区分??

我本来还清楚的,把书一看就什么都不清楚了。麻烦能否举几个简单的例子说明一下呢?我懂了。只剩下默认构造函数这里不清楚。我得出的结论是:默认构造函数可以理解为:1.调用时不必... 我本来还清楚的,把书一看就什么都不清楚了。麻烦能否举几个简单的例子说明一下呢?
我懂了。只剩下默认构造函数这里不清楚。我得出的结论是:
默认构造函数可以理解为:
1.调用时不必提供参数的构造函数。
2.所有参数都具有默认值的构造函数。
3.参数表为空的构造函数。换句话说,无参构造函数就是默认构造函数。
是不是对的???
展开
 我来答
王律师案件普法

2019-09-20 · TA获得超过35.9万个赞
知道大有可为答主
回答量:374
采纳率:89%
帮助的人:35万
展开全部

默认构造函数就是:在你不提供任何构造函数的情况下,系统给出的一个不带参数,不包含函数代码的构造函数。

在创建对象时调用构造函数,构造函数来初始化成员变量。可以有多个构造函数,他们的区别就是参数不同。所有可以用不同的构造函数初始化一个对象。

默认构造函数,就是调用构造函数时,不必给出实参的构造函数。

在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。例:

Box(int =10,int =10,int =10);        1

Box();                               2

Box(int,int);                        3

若有以下定义语句:

Box box1;                 //是调用上面的第一个默认参数的构造函数,还是第二个默认构造函数

Box box2(15,30);          //是调用上面的第一个默认参数的构造函数,还是第三个构造函数

扩展资料:

第2个构造函数是最基本,最原始的构造函数;第1个就是形参都已默认,指定了的构造函数,调用时实参可以传过去1个,2个,3个,甚至0个数据。

比如,第一个语句:Box box1;我们可以认为他是直接调用第2个构造函数,也可以认为他是调用了第1个构造函数,只不过没有实参传递过去而已,这样就产生了歧义。

同理,第二个语句,我们可以理解为它调用了第3 个构造函数。但同时,理解为它调用第1个构造函数,只不过仅传过去2个实参,也是可是说得通的。这也就产生了歧义。

事实上,上面3个函数中任意一个都可以说是另两个的重载函数,那么“在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数”就很好容易理解了

参考资料来源:百度百科——默认构造函数

百度网友fd21508
2011-03-08 · 超过26用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:71.3万
展开全部
默认构造函数就是:在你不提供任何构造函数的情况下,系统给出的一个不带参数,不包含函数代码的构造函数;
如果类的声明中没有构造函数,那么系统自动为类提供一个默认构造函数。如果类中声明了构造函数,那么系统不再提供默认构造函数,此时用户如果还要使用无参构造函数,则需要自己重载构造函数。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3522a164b
2011-03-08
知道答主
回答量:21
采纳率:0%
帮助的人:11.2万
展开全部
默认构造只是系统给添加的,按编译器默认方式去初始化对象!只要你显示的声明定义了无参构造就不存在默认之说了,系统优先调用你定义的无参构造!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jayhou1986
推荐于2018-03-29 · TA获得超过1511个赞
知道小有建树答主
回答量:586
采纳率:81%
帮助的人:415万
展开全部
比如你定义了一个class A类,里面没有写任何构造函数,则系统会自动给你生成一个默认构造函数
该函数是A(),该默认构造函数是没有参数的,所以他同时是一个无参构造函数。
无参构造函数就是函数没有参数,说白了就是函数的括号里没有任何东东。比如A()
带有默认值的构造函数是有参数的构造函数,不过如果你调用时不传入任何参数则使用默认值。
A(int i = 0)
{
cout << i << endl;
}
如果你在主函数里调用A(),则输出默认值0,如果你调用时传入值A(2),则输出你传入的值,也就是2
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a799772
2011-03-08 · TA获得超过240个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:285万
展开全部
有自定义的构造函数,就执行自定义的,不执行默认的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式