函数类的析构函数在函数结束时或程序异常终止时被调用。具体如下:函数结束时,无论是因为函数返回还是抛出异常。程序异常终止时,即使函数未正常结束。

C++ 函数的类方法的析构函数是如何被调用的?
函数类的析构函数在以下情况下被调用:
- 函数结束时,无论是因为函数返回还是抛出异常。
- 程序异常终止时,即使函数未正常结束。
在以下代码示例中,我们将演示函数类析构函数的调用:
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
using namespace std;
class Test {
public:
Test() { cout << "Constructor called" << endl; }
~Test() { cout << "Destructor called" << endl; }
};
void func() {
Test obj; // 析构函数在函数返回前被调用
}
int main() {
func();
return 0;
}输出:
Constructor called Destructor called
如输出所示,func() 函数返回前调用了 Test 对象的析构函数。
注意:
- 函数类的析构函数不能有参数或返回类型。
- 析构函数可以是显式的(由用户定义)或隐式的(由编译器自动生成)。
- 析构函数不应有副作用,因为它可能在意外的情况下被调用(例如,异常处理)。










