构造函数和析构函数的区别

 我来答
惠企百科
2022-12-02 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

1、概念不同:

析构函数:对象所在的函数已调用完毕时,系统自动执行析构函数。

构造函数:是一种特殊的方法。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

2、作用不同:

析构函数:析构函数被调用。

构造函数:为对象成员变量赋初始值

3、目的不同:

析构函数:”清理善后” 的工作

构造函数:主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

博学谷
2021-03-26 · 贡献了超过955个回答
知道答主
回答量:955
采纳率:0%
帮助的人:43.7万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
硪丨暧恋
2016-11-10 · TA获得超过8979个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2083万
展开全部
构造函数:
什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。它的作用是在建立一个对象时,作某些初始化的工作(例如对数据赋予初值)。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数。
构造函数上惟一的语法限制是它不能指定返回类型,甚至void 也不行。
不带参数的构造函数:一般形式为 类名 对象名(){函数体}
带参数的构造函数:不带参数的构造函数,只能以固定不变的值初始化对象。带参数构造函数的初始化要灵活的多,通过传递给构造函数的参数,可以赋予对象不同的初始值。一般形式为:构造函数名(形参表);
创建对象使用时:类名 对象名(实参表);
构造函数参数的初始值:构造函数的参数可以有缺省值。当定义对象时,如果不给出参数,就自动把相应的缺省参数值赋给对象。一般形式为:
构造函数名(参数=缺省值,参数=缺省值,……);

析构函数:
当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。析构函数的名字和类名一样,不过要在前面加上 ~ 。对一个类来说,只能允许一个析构函数,析构函数不能有参数,并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。
一个类中可以有多个构造函数,但析构函数只能有一个。对象被析构的顺序,与其建立时的顺序相反,即后构造的对象先析构。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式