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

2024年11月15日 19:37
有4个网友回答
网友(1):

1、概念不同:

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

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

2、作用不同:

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

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

3、目的不同:

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

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

网友(2):

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

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

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

  3. 例子:

#include
using namespace std;
class T
{
    public:
    T(){cout<<"析构函数被调用。";}
     ~T(){cout<<"析构函数被调用。";} //为了简洁,函数体可以直接写在定义的后面,此时函数为内联函数
};
int main()
{
     T *t=new T();//建立一个T类的指针对象t//调用构造函数
     delete t;//调用析构函数
     cin.get();
};

网友(3):

构造函数是用来完成成员初始化的,析构是运行完程序释放掉变量的存储空间

网友(4):