- C++相談室 part122 [無断転載禁止]©2ch.net
81 :77[sage]:2016/01/26(火) 16:51:07.74 ID:uqIl8Fge - >>77 は勇み足だった。C++11だと下のように書くか。
#include <iostream> using namespace std; struct Base { int i; Base(int i) : i {i} { cout << "ok! I got " << i << endl; } }; struct X : public Base { X(int i) : Base {i} {} // Base::Base() でなく }; int main() { X x {1}; // Base側のコンストラクタを呼べるでしょ cout << "Yes, x.i == " << x.i << endl; return 0; } 明示的なコンストラクタ呼び出しでなく {} による初期化。
|