C++のデストラクターはどのように呼び出すのか?
C++のデストラクタは、オブジェクトが破棄される際に自動的に呼び出され、手動で呼び出す必要はありません。オブジェクトのライフサイクルが終了すると、たとえばオブジェクトがスコープ外になったり、delete演算子が使用されて動的に割り当てられたオブジェクトが解放されたり、プログラムが終了したときにデストラクタが自動的に呼び出されます。
以下は一つの例です:
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "构造函数被调用" << endl;
}
~MyClass() {
cout << "析构函数被调用" << endl;
}
};
int main() {
MyClass obj; // 创建一个对象
// 对象超出作用域,析构函数会被自动调用
return 0;
}
結果:
构造函数被调用
析构函数被调用
この例では、オブジェクトobjがスコープ外になると、デストラクタが自動的に呼び出され、「デストラクタが呼び出されました」と出力されます。