- C++类可定义一个特殊的清理函数
- 这个特殊函数叫析构函数
- 功能与构造函数相反
- 定义: ~ClassName()
- 析构函数没有参数也没有返回值(不能重载,独一)
- 析构函数在对象销毁时,自动调用
#include <stdio.h>
class Test
{
int mi;
public:
Test(int i)
{
mi = i;
printf("Test():%d\n", mi);
}
~Test()
{
printf("~Test():%d\n", mi);
}
};
int main()
{
Test t(1);
Test* pt = new Test(2);//堆空间定义对象
delete pt;
return 0;
}
将free作为析构函数
析构函数手动定义准则:
自定义构造函数使用系统资源(内存申请,文件打开)
小结:
- 析构函数是对象销毁时自动调用进行清理的特殊函数
- 系统资源能够释放