コンストラクター (C++)
クラスと同じ名前を持つメンバー関数はコンストラクター関数です。コンストラクターを返すことができません。戻り値の型を持つコンストラクターを指定するとコンストラクターのアドレスを取得するようにエラーです。
クラスにコンストラクターがある場合その型のオブジェクトにはプログラムを使用してコンストラクターで初期化されます。(初期化に関する詳細については特殊なメンバー関数を使用して初期化されます。 を参照してください)。
コンストラクターはオブジェクトが作成された時点で呼び出されます。オブジェクトは次のように作成されます :
グローバル スコープ (ファイルまたは外部にリンクするオブジェクト)。
関数または小さい含むブロック内のローカル オブジェクト。
新規作成 の演算子を使用して動的オブジェクト。 新規作成 の演算子はプログラムがヒープまたは 「フリー ストアのオブジェクトを持ちます」。
明示的にコンストラクターを呼び出すことによって作成される一時オブジェクト。(詳細については一時オブジェクト を参照してください)。
コンパイラが暗黙的に作成される一時オブジェクト。(詳細については一時オブジェクト を参照してください)。
別のクラスのデータ メンバー。クラス型が他のクラス型の変数で構成されるクラス型のオブジェクトを作成するとクラス内の各オブジェクトを作成します。
クラスの基本クラス サブオブジェクト。派生クラス型のオブジェクトを作成すると基本クラスのコンポーネントを作成します。
使用例
// constructors.cpp
// compile with: /c
class MyClass {
public:
MyClass(){}
MyClass(int i) : m_i(i) {}
private:
int m_i;
};