「デストラクタ」の版間の差分
提供: 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; } };
詳しくは、継承と仮想デストラクタをご参照ください。