私はc ++ 11の簡単なプログラムを持っています:
struct A{
int i;
struct B{
int i;
int j;
};
} a = {2, {3, 4}};
g ++-7はコンパイルされ、エラーが発生します。
error: too many initializers for 'A'
}a={2,{3,4}};
^
リテラル定数を使用してAのオブジェクトを宣言するにはどうすればよいですか、それを修正するにはどうすればよいですか?
どうもありがとう。
タイプにA
は(タイプのint
)単一のデータメンバーしか含まれていないため、初期化子には最大で1つの要素を含めることができます。
struct A{
int i;
struct B{
int i;
int j;
};
} a = {2}; // OK, a.i == 2
(A
型メンバー(A::B
)も含まれているという事実は、型のオブジェクトの作成には重要ではありませんA
。)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加