对于Base:a4字节,b1字节,3字节对齐,共8字节。
对于Derived:d并没有和b存在一起,而是在3字节之外(Base对象内存单元之后,即8字节之后),再加上3字节对齐,共12字节。
这样做是有目的的,如将基类的对象复制给派生类对象时,这样分配内存不会对某个派生类对象成员造成未知的覆盖。
将b对象拷贝到d对象。
Derived d;
Base b;
Base *pb = &b;
Base *pd = &d;
*pd = *pb;
对于Base:a4字节,b1字节,3字节对齐,共8字节。
对于Derived:d并没有和b存在一起,而是在3字节之外(Base对象内存单元之后,即8字节之后),再加上3字节对齐,共12字节。
这样做是有目的的,如将基类的对象复制给派生类对象时,这样分配内存不会对某个派生类对象成员造成未知的覆盖。
将b对象拷贝到d对象。
Derived d;
Base b;
Base *pb = &b;
Base *pd = &d;
*pd = *pb;