1.class K
{
};
sizeof(K) = 1;
2. class A
{
int a;
void a();
};
sizeof(A) = 4;
3. class B
{
int b;
virtual void b();
}
sizeof(B) = 4+4;
4. class C:virtual public B
{
int c;
virtual void c();
};
sizeof(C)=4+4+4+4+4;
5. class D:virtual public B
{
int d;
virtual void d();
}
sizeof(D)=4+4+4+4+4;
6. class E:public C,public D
{
int e;
}
sizeof(E) = 4+2*(4+4+4+4+4)-4;
总结:sizeof 类 = 成员变量+虚函数指针。sizeof 继承类 = 本身成员变量+父类的大小,如果是虚拟继成的话,则另外加一个指向父类指针的大小;当多重继承的时候,如例6中,所示,这时候只需要,保留一份指向虚基类B的指针,所以得减掉一个指针的大小。