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

提供: C++入門
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == クラス は、コンストラクタデストラクタと呼ばれるメンバを持ちます...」)
(相違点なし)

2013年3月23日 (土) 22:04時点における版


概要

クラス は、コンストラクタデストラクタと呼ばれるメンバを持ちます。 クラスをインスタンス化するときにコンストラクタが呼び出されます。 インスタンスが解放されたり、スコープ外になったときに、デストラクタが呼び出されます。

コンストラクタの役割は、インスタンスの初期化です。メンバ変数の初期化処理などを請け負います。

デストラクタの役割は、インスタンスの終了処理です。メモリの解放やファイルのクローズなどをやってもらうことができます。

クラスにおけるコンストラクタ

クラスのコンストラクタは、クラス名と同じ名前を持ちます。

class C {
	public:
		// コンストラクタ
		C() {
		}
};

オーバーロードのために複数のコンストラクタを持つことができます。

class C {
	public:
		int m_i;
		// コンストラクタ
		C() {
		}
		C(int i): m_i(i) {
		}
};

クラスのデストラクタは、クラス名の前にチルダ(~)をつけた名前を持ちます。

クラスにおけるデストラクタ

class C {
	public:
		// デストラクタ
		~C() {
		}
};

コンストラクタとデストラクタの省略

コンストラクタとデストラクタは、不要であれば、省略できます。

class C {
	public:
		void foo() {
		}
};

関連項目