C++の常識

イニシャライザ


 基本クラスコンストラクタが引数を持つとき、引数を渡すための特別な構文が用意されています。

 基本クラスのコンストラクタは、派生クラスのコンストラクタが実行される前に実行されます。派生クラスのコンストラクタが呼び出された後で基本クラスのコンストラクタを呼び出すことはできません。そこでイニシャライザを使って、基本クラスのコンストラクタでの初期化を、派生クラスのコンストラクタが呼び出されるときに一緒に行います。

 下記の例は、基本クラスBaseの派生クラスSampleです。a, bはコンストラクタBase()の引数です。このように派生クラスのコンストラクタSample()の後にコロンをつけて、基本クラスBaseのコンストラクタを呼び出し、初期化します。

class Sample: public Base {
  
    ・・・・・・・
	  
    Sample() : Base(a, b) {  // ここがイニシャライザです
	
        ・・・・・・・・
    }

};