完成的工作:
类似构造函数有一个初始化部分和一个函数体部分,析构函数也有一个函数体和一个析构部分。构造函数中,先进行成员的初始化,再执行函数体;而在析构函数中,是先执行函数体,后销毁成员。成员按初始化顺序的逆序销毁。
调用析构函数的时机:
无论何时一个对象被销毁,就会自动调用其析构函数。
变量在离开其作用域时被销毁
当一个对象被销毁时,其成员被销毁
容器被销毁时,其元素被销毁
对于动态分配的对象,当对指向它的指针应用delete运算符时被销毁
合成析构函数:
类似构造函数,当一个类未定义自己的析构函数时,编译器会为它定义一个合成的析构函数。
例如,下面的代码片段等价于Sales_data的合成析构函数:
class Sales_data{
public:
//成员会被自动销毁,除此之外不需要做其他事情
~Sales_data(){}
//其他成员的定义
注:在空析构函数体执行完毕后,成员会被自动销毁。认识到析构函数体自身并不直接销毁成员是非常重要的。成员是在析构函数体之后隐含的析构阶段中被销毁的。在整个对象销毁过程中,析构函数体是作为成员销毁步骤之外的另一部分进行的。
参考:《C++ Primer》
来源:CSDN
作者:capecape
链接:https://blog.csdn.net/capecape/article/details/78277265