聚合(aggregate)
C++语法规定:不能使用初始值列表来初始化"非聚合(non-aggregate)"的对象。那么,什么才算是"聚合"呢?C++认为聚合包括知足以下条件的数组、类及结构:
不包含任何构造函数。
不包含任何私有/保护成员。
不包含任何基类。
不包含任何虚函数。数组
因此结构体若是定义构造函数, 则列表初始化不能使用。
在c里面编辑结构体是没有构造函数, 天然也编译不过。函数
因此通常跨平台写结构体的。
struct A{
int m_nValue;对象
};
这样, 可是定义的时候, 列表初始化, 也并不能直接附上值编译