Shuhei Kagawa

基本クラスのメンバを初期化できない

Jul 28, 2009 - C++

またまた少しはまりました。

C++ のコンストラクタは、基本クラスのメンバを初期化できないそうです。 以下のように書くとエラーになります。

class A {
protected:
  int foo;
};

class B : public A {
public:
  B(int value) : foo(value) {
  }
};

親クラスのコンストラクタでも初期化をしていると、子クラスのコンストラクタで初期化しても上書きされてしまうからでしょうか。なかなか面倒なものですね。

参考サイト: