对象的销毁
对象被销毁前会做一些清理工作
需要销毁的对象都应该被清理
解决方案:
为每个类都提供一个public的free函数
对象不在需要时立即调用free函数进行清理
存在的问题
free只是一个普通的函数,必须显示的调用
对象销毁前没有做清理,很可能造成资源泄露
析构函数
C++的类中可以定义一个特殊的清理函数
这个特殊的清理函数叫做析构函数
析构函数的功能与构造函数相反
定义:~ClassName()
析构函数没有参数也没有返回值类型声明
析构函数在对象销毁时,自动被调用。
#include"stdio.h"
class Test
{
private:
int mi;
public:
Test(int i)
{
mi = i;
printf("Test()\n");
}
~Test()
{
printf("~Test()\n");
}
};
int main()
{
Test t(1);
Test* pt = new Test(2);
delete pt;
return 0;
}
输出:
`Test()
Test()
~Test()
~Test()`
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。