C++のコンストラクタ
C++ではメンバ変数の初期化はメソッドの外でやるらしい。
つまりは
class Hoge{ public: Hoge(int x,double y); protected: int hoge; double piyo; }; Hoge::Hoge(int x, double y): hoge(x),piyo(y){ }
てな感じ
さて、では
class Piyo : public Hoge{ public: Piyo(int x, int y); }; Piyo::Piyo(int x,double y) : hoge(x),piyo(y){ }
なんてすると、いかにも動きそうだけど、どうやらダメらしい。 こう言うときは
Piyo::Piyo(int x,double y) : Hoge(x,y){ }
としてやらないとダメ。