序文
一般に、コンストラクターはオブジェクトの初期化を担当し、デストラクターはオブジェクトのクリーンアップとリソースの解放を担当します。これらは C++ オブジェクト指向プログラミングにおける非常に重要な概念であり、オブジェクトのライフ サイクルを管理し、オブジェクトの作成時と破棄時に適切に初期化およびクリーンアップできるようにするために使用されます。
文章
コードを見てください
class person
{
public:
person(){
cout << " 这是一个构造函数 " << endl;
}
~person()
{
cout << " 这是一个析构函数 " << endl;
}
};
int main()
{
person mike;
system("pause");
return 0;
}
この C++ コードは、person という名前のクラスを定義し、main 関数で person クラスのオブジェクト mike を作成します。コンストラクターとデストラクターが何を行うかを理解するために、このコードを段階的に見てみましょう。
class person
{
public:
person(){
cout << " 这是一个构造函数 " << endl;
}
~person()
{
cout << " 这是一个析构函数 " << endl;
}
};
ここでは person という名前のクラスが定義されています。このクラスには、コンストラクターとデストラクターという 2 つの特別なメンバー関数があります。
コンストラクター: コンストラクターはクラス名と同じ名前を持ち、戻り値の型 (void を含む) を持ちません。このコンストラクターには、「これはコンストラクターです」を出力するコードが 1 行だけあります。
デストラクター: デストラクターの名前はクラス名と同じで、先頭にチルダ (~) が付きます。また、戻り値の型もありません。このデストラクターには、「これはデストラクターです」を出力するコードが 1 行だけあります。
メイン機能:
int main()
{
person mike;
system("pause");
return 0;
}
main関数では、まずpersonクラスのオブジェクトmikeを作成します。オブジェクト mike が作成されると、コンストラクターが自動的に呼び出され、「これはコンストラクターです」と出力されます。
次に、プログラムは system("pause") を実行して、ユーザーがいずれかのキーを押して続行するのを待ち、コンソール ウィンドウがすぐに閉じないようにします。
最後に、main 関数が終了し、プログラムは 0 を返します。main 関数の最後で、オブジェクト mike がスコープ外になるため、デストラクターが自動的に呼び出され、「これはデストラクターです」と出力されます。
要約:
- コンストラクターはオブジェクトを初期化するために使用され、通常はオブジェクトの作成時に自動的に呼び出されます。
- デストラクターはオブジェクトをクリーンアップするために使用され、通常、オブジェクトがスコープ外になったとき、または明示的に削除されたときに自動的に呼び出されます。
この例では、コンストラクターとデストラクターの主な役割は、オブジェクトの存続期間の開始時と終了時に特定のアクションを実行することです。