1 析构函数是类中的一种特殊形式的成员函数
class 类名{ public: ~类名 (void) {...} };
1)析构函数名必须是 ~类名。
2)析构函数没有返回类型,也没有参数,所以无法重载。
3)一个类只能有一个析构函数。
4)主要负责清理对象创建时动态产生的资源。
2 当对象被销毁时,该对象的析构函数将被自动执行
1)栈对象当其离开作用域时,其析构函数被作用域终止右花括号调用。
2)堆对象的析构函数被 delete/delete[] 运算符调用。
3 缺省析构
1)如果一个类没有显示定义析构函数,那么系统会为该类提供一个缺省析构函数。
2)对于基本类型的成员变量,什么也不做。
3)对类 类型的成员变量,调用相应的类成员变量的析构函数。
4 对象的创建和销毁的过程
1)对象创建
--> 为对象分配内存
--> 依次调用类 类型的成员变量(成员子对象)的构造函数
--> 执行构造函数体的代码
2)对象销毁
--> 执行析构函数代码
--> 调用成员子对象的析构函数
--> 释放对象所占的内存