当先锋百科网

首页 1 2 3 4 5 6 7

我听说C++ 结构体如果带有构造函数,不能使用大括号列表一次性对成员赋值,否则将出现 不能用初始值设定项列表初始化非聚合错误

下面看一下;

正常运行如下;

下面用大括号一次性赋值成员;

 

构建一下;没有出现前面的错误;出现了另一个错误;could not convert '{"......"}' from '<brace-enclosed initializer list>' to 'xxx';

如果不带构造函数就可以;

C++对于non-aggregates(非聚合对象),不能使用初始化列表;只有聚合对象才可以这样使用;
聚合对象定义为:
1. 数组
2. 不包含 ( 构造函数、private和protect、基类、虚函数 )的类、结构体和联合体
    不满足聚合对象定义而使用初始化列表都会产生这样的错误;
————————————————
版权声明:本文为CSDN博主「bcbobo21cn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bcbobo21cn/article/details/128337355