C++ 不能用初始值设定项列表初始化非聚合错误

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

下面看一下;

正常运行如下;

C++ 不能用初始值设定项列表初始化非聚合错误_第1张图片

C++ 不能用初始值设定项列表初始化非聚合错误_第2张图片

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

C++ 不能用初始值设定项列表初始化非聚合错误_第3张图片 

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

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

C++ 不能用初始值设定项列表初始化非聚合错误_第4张图片

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

 

你可能感兴趣的:(C/C++语言本身,c++)