当编译以下代码时,将收到错误
struct stype {
int a;
int b;
int c;
stype (){
a=0;
b=0;
c=0;
}
};
/* a, b, c */
struct stype rgstype[2] = { {8, 9, 10},
{15, 16, 17} };
d:\test.cpp(49) : error C2552: “rgstype”: 不能用初始值设定项列表初始化非聚合
“stype”: 不聚合带用户定义的构造函数的类型
解决方法:把构造函数去掉就可以了。
struct stype {
int a;
int b;
int c;
// stype (){a=0;b=0;c=0;}
};
本文探讨了在C++中使用结构体时遇到的一个常见错误:尝试使用初始值列表来初始化带有用户定义构造函数的非聚合类型。文章通过一个具体的例子展示了错误发生的情景,并给出了相应的解决方法。
3685

被折叠的 条评论
为什么被折叠?



