C++ 析构函数
——用构造函数创建对象后,程序负责跟踪该对象,直到其过期为止。对象过期时,程序将自动调用一个特殊的成员函数—析构函数完成清理工作,如释放构造函数使用new分配的内存。
析构函数的形式:
在类名前加上~,没有返回值和声明类型,没有参数:
~Stock();
调用:
- 对于被声明为自动变量的类对象,过期时析构函数将自动调用(我的程序中若程序结束时尚有该类型类对象未过期,则将自动从后往前依此调用析构函数)。
- 对于被声明为静态变量的对象(外部、静态、静态外部或来自名称空间),则在程序结束时(晚于自动变量类型对象)调用对象的析构函数。
什么时候创建:
如果构造函数使用了new,则必须提供使用delete的析构函数。
自动创建:
没有提供析构函数,编译器将隐式地声明一个默认析构函数,并在发现导致对象被删除的代码后,提供默认析构函数的定义。