析构函数没有返回类型,没有参数表,不能重载,一个类只能有一个析构函数。析构函数只能由系统自动调用,不能在程序中显示调用。
当创建一个对象时,C++将首先为数据成员分配存储空间,接着调用构造函数对成员进行初始化工作;当对象生存期结束时,C++将自动调用析构函数清理对象所占据的存储空间,然后才销毁对象。
说明:
- 若有多个对象同时结束生存期,C++将按照与调用构造函数相反的次序调用析构函数。
- 构造函数和析构函数都可以是inline()函数。
- 通常,构造函数与析构函数应被设置为类的公有成员,虽然他们只能被系统自动调用,但这些调用都是在类的外部进行的。
- 每个类都应该有一个析构函数,若没有显示定义,编译器将产生一个最小化的默认析构函数: X::~X(){}
- 析构函数最常见的是用来释放由构造函数分配的自由存储空间,防止内存泄露。