c++中的析构函数与构造函数的区别

 我来答
惠企百科
2022-12-02 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
向TA提问
展开全部

1、概念不同:

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

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

2、作用不同:

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

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

3、目的不同:

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

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

hwd0312
推荐于2016-08-26 · TA获得超过4336个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:169万
展开全部

c++中的析构函数与构造函数的区别主要是功能上的区别:

  1. 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

  2. 析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

  3. 例子:

#include<iostream>
using namespace std;
class T
{
    public:
    T(){cout<<"析构函数被调用。";}
     ~T(){cout<<"析构函数被调用。";} //为了简洁,函数体可以直接写在定义的后面,此时函数为内联函数
};
int main()
{
     T *t=new T();//建立一个T类的指针对象t//调用构造函数
     delete t;//调用析构函数
     cin.get();
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lisa_going
2008-03-30 · TA获得超过241个赞
知道答主
回答量:154
采纳率:0%
帮助的人:83.1万
展开全部
构造函数是用来完成成员初始化的,析构是运行完程序释放掉变量的存储空间
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
博学谷
2021-03-28 · 贡献了超过955个回答
知道答主
回答量:955
采纳率:0%
帮助的人:45.8万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式