我在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的对象,如何修复它?
非常感谢。
发布于 2019-02-06 00:57:28
由于类型A仅包含单个数据成员(类型为int),因此初始化程序中最多可以有一个元素:
struct A{
int i;
struct B{
int i;
int j;
};
} a = {2}; // OK, a.i == 2( A还包含类型成员(A::B)这一事实对于创建A类型的对象并不重要。)
https://stackoverflow.com/questions/54545252
复制相似问题