标签: c++ visual-c++ gcc compiler-construction clang
C ++标准是否规定了类和结构的编译布局?如果它们是空的,它们如何编译得不同?
答案 0 :(得分:13)
它确实在某种程度上说它必须为它分配空间,除非某些情况下它用作基类(称为空基类优化)。这是为了保证不同的对象具有不同的地址。
它们的编译方式相同,struct和class是相同的,除了默认的访问说明符。在 C ++ 11 中引入了 standard-layout 类/结构的概念,并保证空类的内存布局相同。
struct
class