定义:
当定义一个对象时,C++自动调用构造函数建立该对象并进行初始化,那么当一个对象的生命周期结束时,C++也会自动调用一个函数注销该对象并进行善后工作,这个特殊的成员函数即析构函数(destructor):
1.析构函数名与类名相同,但在前面加上字符‘~’,如:~CGoods()。
2.析构函数无函数返回类型,与构造函数在这方面是一样的。但析构函数不带任何参数。
3.一个类有一个也只有一个析构函数,这与构造函数不同。
4.对象注销时,系统自动调用析构函数。
5.如果类说明中没有给出析构函数,则C++编译器自动给出一个缺省的析构函数。
与构造函数最大的不同点在于:构造函数只能由系统调用且只能调用一次,不能自己调用自己。
而析构函数可以自己调用自己。
int main()
{
Complex cs(1,2);
cs.~Complex(); //一般不要自己调用析构函数 因为系统不能记录调用的次数
}
构造函数是在创建对象的时候获取资源;
析构函数是在释放对象在生存时候调用的资源,主要是堆区资源;
析构函数也能接收到this指针。
class MyString
{
private:
File * fp;
public:
MyString()
{