|nvsize=1,nvalign=1]***Dumping AST Record Layout0|structDerived20|structBase(base)(empty)1|structBasec(empty)// Derive3的空基类优化失效,Base c的地址偏移为14|inti// 地址填充对齐,所以int i的地址偏移为4|[sizeof=8,dsize=8,align=4,|nvsize=8,nvalign=4]***Dumping AST Record Layout0|s...
std::cout<<sizeof(Empty)<<std::endl; //1 1. 结果是 1,它是空的怎么不是 0 呢? 因为空类同样可以被实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所以上述大小为 1. 根据上面的回答,...