一、析构函数
析构函数(destructor)是类成员函数一种
函数的三要素:函数名,形参列表,返回值
1、析构函数原型:
1、无返回值
2、必须和类名一样,但要在前加上~
3、一个类中有且只有一个,不能被重载
2、析构函数作用:
1、如何定义? 如不显式定义,则自动生缺省析构函数
2、何时被调用?当对象消亡时自动被调用
3、有什么作用?它并不是真正意义上删除对象所有内存,而是在删除该对象占用内存之前做一些其他的清理工作,比如,该内部申请了其他内存等等
举个栗子
#include <iostream>
using namespace std;
class Person {
public:
Person(): _buf(new char[10]) {}
~Person() { delete _buf; }
private:
char *_buf;
};
int main(int argc, char* argv[])
{
Person a;
return 0;
}
如果没有 ~Person() { delete _buf; } 将会造成内存泄漏
3、析构函数对象的释放顺序