一、定义
析构函数是特殊的成员函数,它是在对象的生命周期结束时,C++编译系统会自动调用的一个成员函数。构造函数在定义对象时自动调用,用于对象的初始化;而析构函数在对象的生命周期结束时自动调用,主要做一些清理工作。
二、析构函数的特点:
- 析构函数在类名前加上~;
- 析构函数无参无返回值;
- 一个类只有一个析构函数,若未定义析构函数,系统会自动生成一个缺省的析构函数;
- 在定义对象的生命周期结束时,系统会自动调用;
- 析构函数不是要删除对象,而是做一些清理工作。
class seqlist
{
public:
//构造函数
seqlist()
{
_capacity = 0;
_size = 0;
_data = (int*)malloc(sizeof(int));
}
//析构函数
~seqlist()
{
//析构函数不是删除对象,而是做一些清理工作
free(_data);
_capacity = 0;
_size = 0;
}
private:
int* _data;
size_t _size;
size_t _capacity;
};
三、析构函数与构造函数
- 构造函数和析构函数在功能上分别与链表的初始化和销毁有些相似;
- 析构函数在调用时顺序与构造函数相反:当定义两个及以上对象时,先调用析构函数的是后定义的。(这是由于栈桢是先进后出的)