析构函数
/*
析构函数(destructor) :
与构造函数相反,当对象结束其生命周期,
如对象所在的函数已调用完毕时,系统自动执行析构函数。
析构函数往往用来做“清理善后” 的工作
(例如在建立对象时用new开辟了一片内存空间,
delete会自动调用析构函数后释放内存)。
1.不能有参数 , 所以不可重载
2.无返回值
3.当类中含有指针时
delete 该类的一个 对象,不会撤销里面指针所指的空间,但析构函数可以
所以 析构函数三法则:
有复制构造函数和赋值运算符重载(例如将=的功能变成深复制),需要析构函数
*/
/*
c++中delete和析构函数之间的区别:
https://www.cnblogs.com/qbdj/p/10882213.html
*/



#include<iostream>
using namespace std;
class CDemo {
public:
~CDemo() { //析构函数
cout << "Destructor called"<<endl;
}
};
int main() {
CDemo array[2]; //构造函数调用2次
CDemo* pTest = new CDemo; //构造函数调用
delete pTest; //析构函数调用
cout << "-----------------------" << endl;
pTest = new CDemo[2]; //构造函数调用2次
delete[] pTest; //析构函数调用2次
cout << "Main ends." << endl;
return 0;
}