C++ 不能用初始值设定项列表初始化非聚合错误
Posted bcbobo21cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 不能用初始值设定项列表初始化非聚合错误相关的知识,希望对你有一定的参考价值。
我听说C++ 结构体如果带有构造函数,不能使用大括号列表一次性对成员赋值,否则将出现 不能用初始值设定项列表初始化非聚合 错误;
下面看一下;
正常运行如下;
下面用大括号一次性赋值成员;
构建一下;没有出现前面的错误;出现了另一个错误;could not convert '"......"' from '<brace-enclosed initializer list>' to 'xxx';
如果不带构造函数就可以;
C++对于non-aggregates(非聚合对象),不能使用初始化列表;只有聚合对象才可以这样使用;
聚合对象定义为:
1. 数组
2. 不包含 ( 构造函数、private和protect、基类、虚函数 )的类、结构体和联合体
不满足聚合对象定义而使用初始化列表都会产生这样的错误;
以上是关于C++ 不能用初始值设定项列表初始化非聚合错误的主要内容,如果未能解决你的问题,请参考以下文章