sizeof(A)=1
sizeof(B)=2
//虚继承的时候
sizeof(A)=1
sizeof(B)=9
//虚继承,虚函数
sizeof(A)=1
sizeof(B)=13
虚继承,使公共的基类在子类中只有一份,我们看到虚继承在多重继承的基础上多了vbtable来存储到公共基类的偏移。
sizeof(B)=8
sizeof(D1)=20
sizeof(D2)=20
sizeof(GD)=36
以下是网上拷贝过来的:
GD在内存中的分配地址
//地址测试,vc6编译选项加上/GR
还是从内存布局来看dynamic_cast时地址的变化,第一个基类的地址与子类相同,其他的基类和虚基类需要做偏移。
又一例:
是在vs2008里面查看对象的完整布局(F5)-----网上转的