如何编译空类和空结构?

时间:2012-06-04 20:48:33

标签: c++ visual-c++ gcc compiler-construction clang

C ++标准是否规定了类和结构的编译布局?如果它们是空的,它们如何编译得不同?

1 个答案:

答案 0 :(得分:13)

它确实在某种程度上说它必须为它分配空间,除非某些情况下它用作基类(称为空基类优化)。这是为了保证不同的对象具有不同的地址。

它们的编译方式相同,structclass是相同的,除了默认的访问说明符。在 C ++ 11 中引入了 standard-layout 类/结构的概念,并保证空类的内存布局相同。