请解释一下:在VC和gcc下,虚继承大小不一样,
#include<iostream.h>
class A
{private:
char a[3];
void virtual AA(){};
};
class B: private virtual A //virtual private p
{private:
char b[3];
void virtual BB(){};
};
class C:public virtual B //virtual public p
{private:
char c[3];
virtual void CC(){};
};
void main()
{
cout<<"sizeof(A)"<<sizeof(A)<<endl;
cout<<"sizeof(B)"<<sizeof(B)<<endl;
cout<<"sizeof(C)"<<sizeof(C)<<endl;
}
在VC下面:8 20 32 这个可以理解
在gcc下面:8 16 24 这个不能理解了????