聚合(aggregate)
C++语法规定:不能使用初始值列表来初始化”非聚合(non-aggregate)”的对象。那么,什么才算是”聚合”呢?C++认为聚合包括满足如下条件的数组、类及结构:
不包含任何构造函数。
不包含任何私有/保护成员。
不包含任何基类。
不包含任何虚函数。

所以结构体如果定义构造函数, 则列表初始化不能使用。
在c里面编辑结构体是没有构造函数, 自然也编译不过。

所以一般跨平台写结构体的。
struct A{
int m_nValue;

ifdef __cplusplus
A()
{
m_nValue = 0;
}

endif

};
这样, 但是定义的时候, 列表初始化, 也并不能直接附上值

版权声明:本文为zijian-yang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zijian-yang/p/10081779.html