构造函数和默认构造函数有什么区别

 我来答
路伟房嘉美
2020-01-09 · TA获得超过3923个赞
知道大有可为答主
回答量:3100
采纳率:34%
帮助的人:455万
展开全部
区别:
1、构造函数的函数名称与类名同名,其他方法(函数)名称可以自定义。
2、构造函数仅在对象被创建时系统会根据给定的参数以及类中的构造函数定义进行选择调用,如果类中没有定义构造函数,系统默认会提供一个无参构造空函数,什么都不会做,只是满足接口要求,构造函数不能被显式调用。其他函数根据程序员需要而调用,且必须显式调用。
3、由于对象创建后,系统必须返回新建对象的地址,赋值给指针变量(C++,C#中是将引用赋值给对象变量,其实一样,内部也是对象地址),那么换句话说,返回接口被系统占用了,因此构造函数就不能返回任何类型值,所有带返回值构造函数的定义编译器都不会通过。结果就是构造函数没有也不能有返回类型,而其他函数随意。
4、由于构造函数的作用只是在创建对象时用来初始化成员变量和对象的,因此构造函数不能被继承也不能使用接口。换句话说,因为构造函数只在对象创建时会被调用,其他情况下永远不会被调用,因此如果对一个类定义一个接口,接口中提供了构造函数的接口的话,该函数接口是永远无法被显式调用的,显得多余了,因此如果为构造函数定义接口,编译器会报错。(new一个对象的时候new的是类,不会new接口)
目前就想到这些。
博学谷
2021-01-15 · 贡献了超过955个回答
知道答主
回答量:955
采纳率:0%
帮助的人:43.8万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liouxing_82
2017-10-26 · TA获得超过2.5万个赞
知道大有可为答主
回答量:2.4万
采纳率:48%
帮助的人:1355万
展开全部
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。
如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯文且温和的小松柏5822
2017-10-26
知道答主
回答量:4
采纳率:0%
帮助的人:3576
展开全部
默认构造函数是无参数的,即使在定义类时不写,也会自行给你添加构造函数可自定义,可有参数,可无参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-10-26
展开全部
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。
如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式