トップページ > プログラム > 2016年01月26日 > uqIl8Fge

書き込み順位&時間帯一覧

28 位/164 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000200000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
77
C++相談室 part122 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part122 [無断転載禁止]©2ch.net
77 :デフォルトの名無しさん[sage]:2016/01/26(火) 16:29:07.16 ID:uqIl8Fge
>>75-76
サンプル 10 行目の注釈はないものとして

struct X : public Base {
 X(int i) : Base::Base(i) {} // 子から間接的に呼び出す必要がある
};

と書くのはいかんの?
Base() だけで自動的に Base::Base() を呼んで欲しいってことかな。
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;
}


明示的なコンストラクタ呼び出しでなく {} による初期化。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。