析构函数是“反向”的构造函数。它们在对象被撤消(回收)时调用。析构函数的名 称除了最前面的“~”符号外,与类的名称相同。例如,类String的析构函数是~string()。 析构函数通常用于当一个对象不再需要时,完成“消除”功能。

在函数中建立对象之后,这个对象作为局部对象开始生存,直到函数运行到遇见右括号“}”才结束生存,此时调用析构函数。

对象的释放发生在以下几种情况,首发自学编程网:

·使用运算符new分配的对象被delete删除。

·一个具有块作用域的本地(自动)对象超出其作用域。

·临时对象的生存期结束。

·程序结束运行。

·使用完全限定名显示调用对象的析构函数。

有几条规则约束着析构函数的说明:

·不能接受参量。

· 不能说明有任何返回类型(包括void)。

·不能用return语句返回值。

· 不能说明为const、volatile或static,但析构函数可以因说明为const、volatile或static的对象的析构而被调用。

·可以说明为虚拟的。使用虚析构函数,可以撤消对象而不必知道该对象的类型。由于使用虚拟函数机制,程序将调用该对象的正确的析构函数。