toophy原创, email : toophy@126.com, QQ : 1033683566,工作几年积累的一点经验, 拿来夯实一下 :)
例子:
class CEmpty
{
}
struct SA
{
CEmpty emp; // 真实空间是0字节
int nNum; // 真实空间是4字节
}
struct SB : public CEmpty
{
int nNum;
}
sizeof( SA ) -> 8 字节
sizeof( SB ) -> 4 字节
对于 SA 的大小, emp虽然是空类, 没有任何空间要求, 但是为了访问emp给他配
置了1字节(占位), 那么sizeof(SA)应该是5字节啊, 但当前的对齐方式是 Zp8 , 所以
最少是4字节一个元素.
对于 SB 的大小, 自然是因为 SB和CEmpty 已经合成, 是一个结构, CEmpty不是
SB的成员, 所以就不用占位. 当然 CEmpty如果有 virtual table , SB 就会变大,
其实 CEmpty的就是SB的, SB自然就也有 virtual table.