析构函数是“反向”的构造函数。它们在对象被撤消(回收)时调用。析构函数的名 称除了最前面的“~”符号外,与类的名称相同。例如,类String的析构函数是~string()。 析构函数通常用于当一个对象不再需要时,完成“消除”功能。
在函数中建立对象之后,这个对象作为局部对象开始生存,直到函数运行到遇见右括号“}”才结束生存,此时调用析构函数。
对象的释放发生在以下几种情况,首发自学编程网:
·使用运算符new分配的对象被delete删除。
·一个具有块作用域的本地(自动)对象超出其作用域。
·临时对象的生存期结束。
·程序结束运行。
·使用完全限定名显示调用对象的析构函数。
有几条规则约束着析构函数的说明:
·不能接受参量。
· 不能说明有任何返回类型(包括void)。
·不能用return语句返回值。
· 不能说明为const、volatile或static,但析构函数可以因说明为const、volatile或static的对象的析构而被调用。
·可以说明为虚拟的。使用虚析构函数,可以撤消对象而不必知道该对象的类型。由于使用虚拟函数机制,程序将调用该对象的正确的析构函数。
注意:在一个抽象类中,析构函数可以说明为虚函数。我们会在后面详细介绍虚函数的概念。