zijian-yang

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

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

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

ifdef __cplusplus
A()
{
m_nValue = 0;
}

endif

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

分类:

技术点:

相关文章:

  • 2021-11-23
  • 2021-11-23
  • 2022-12-23
  • 2021-06-15
  • 2021-11-23
  • 2021-11-23
  • 2021-10-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2021-11-23
  • 2022-03-05
  • 2021-07-05
  • 2021-08-31
相关资源
相似解决方案