list)と呼ばれている。メンバ初期化子リストによる初期化は、コンストラクタ本体の処理が実行される前の段階で行われる。メンバ初期化子リストの利用によって、クラスのオブジェクトが構築されるタイミングでメンバ変数を直接的に初期化することができるようになる。9目次コンストラクタ初期化子/メンバ初期化子メンバ初期化子の初期化順序メンバ初期化子を省略した場合の挙動メンバ宣言時に初期化子が指定された場合の挙動コンストラクタ初期化子/メンバ初期化子コンストラクタ初期化子は、コンストラクタの定義内で基底クラスやメンバ変数を初期化するために用いられる記述である。初期化する各要素はメンバ初期化子と呼ばれる。各メンバ初期化子には直接初期化のために丸括弧による式リストを指定することができるほか、C++11以降では波括弧による初期化リストの利用が可能となっている。空の括弧が用いられた場合は値初期化される(基本型の場合はゼロ初期化に相当)。0コンストラクタ初期化子では、基底クラスのコンストラクタを明示的に呼び出すことも可能となっている。{}};メンバ初期化子の初期化順序コンストラクタ初期化子では、まず基底クラスのコンストラクタが優先的に初期化される。その後は各メンバーがクラス定義時におけるメンバ変数の宣言順に初期化される。最後に自身のコンストラクタ本体に処理が移る。trueメンバ初期化子を省略した場合の挙動ユーザ定義のコンストラクタでメンバ初期化子の記述を省略した場合には、基底クラスのデフォルトコンストラクタや、メンバ変数のデフォルトコンストラクタが自動的に呼び出される。基本型のメンバ変数の場合は不定な値となる。A();)は、初期化処理ではなくコピー代入処理となるため注意したい。A()による一時オブジェクトを生成するためのコストと、代入処理時のコピーコストが余計に発生してしまう恐れがある。基底クラスのデフォルトコンストラクタが未定義または非公開だった場合にはエラーが発生する。参考:デフォルトコンストラクタの暗黙呼び出しメンバ宣言時に初期化子が指定された場合の挙動メンバ初期化子が省略された場合には、メンバ宣言時の初期化式が優先される。9;によるメンバの初期化が行われることになる。trueメンバ初期化子が指定された場合には、メンバ初期化子による初期化が優先され、デフォルトメンバ初期化子は機能しなくなる。9;による初期化処理自体が行われなくなる。