struct B {
int b;
B(int i = 0) : b(i) {}; // constructor
};
struct D : B {
int d;
};
int main () {
D obj = {1}; // <-- error
// D obj {1}; // <-- error (different)
}
上記のコードはコンパイルされず、次のようになります。
error: could not convert ‘{1}’ from ‘<brace-enclosed initializer list>’ to ‘D’
「コンストラクタ」行を削除しても同じです。=
記号を削除すると、つまりD obj {1};
以下のようになります。
error: no matching function for call to ‘D::D(<brace-enclosed initializer list>)’
このような問題を修正する正しい構文は何ですか?