「デストラクタ」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「デストラクタ(destructor, 消去子) とは、C++クラスのインスタンスが消去されるときに、オブジェクトの後始末をする...」)
 
(相違点なし)

2014年7月27日 (日) 15:08時点における最新版

デストラクタ(destructor, 消去子) とは、C++クラスのインスタンスが消去されるときに、オブジェクトの後始末をするために自動的に呼び出されるメンバ関数です。C++のクラスのデストラクタの命名規則は、クラス名の前にチルダを付けたもの、と決まっています。

読み方

デストラクタ
ですとらくた
destructor
ですとらくた
消去子
しょうきょし

概要

クラスは、オブジェクトが作成されるときに呼び出されるコンストラクタデストラクタを持ちます。デストラクタは、オブジェクトの後始末を担当します。ファイルのクローズ、メモリの開放などのリソースの開放などを担当させることができます。デストラクタでリソースの開放処理を行うことで、開放漏れを防ぐことができます。

デストラクタの定義

C++のデストラクタは、クラス名の前にチルダをつけると命名規則が決まっています。

class X
{
        X () {}
        ~X () { cout << __PRETTY_FUNCTION__ << endl; }
};

継承と仮想デストラクタ

継承を利用する場合、デストラクタの宣言に注意が必要になります。 基底クラスデストラクタには、仮想関数(仮想デストラクタ)として定義します。簡単に言えば、デストラクタにvirtualをつけて宣言します。

class X
{
        X () {}
        virutal ~X () { cout << __PRETTY_FUNCTION__ << endl; }
};

詳しくは、継承と仮想デストラクタをご参照ください。

関連項目