我有在C ++ 11一个简单的程序:
struct A{
int i;
struct B{
int i;
int j;
};
} a = {2, {3, 4}};
克++ - 7个编译并给出错误:
error: too many initializers for 'A'
}a={2,{3,4}};
^
我只是不知道如何可以声明使用文字常量的对象,如何解决呢?
非常感谢。
由于您的型A
只包含(类型int
)一个单一的数据成员,你可以在你的初始化至多有一个元素:
struct A{
int i;
struct B{
int i;
int j;
};
} a = {2}; // OK, a.i == 2
(即A
还包含一个型部件(A::B
)的事实是不重要的创作类型A
的对象。)