多重继承和虚继承的问题
看一段程序
#include <iostream.h>
class A
{
public:
int a;
};
class B
{
public:
int b;
};
class C: virtual public A,virtual public B
{
public:
int c;
};
class D: virtual public A,virtual public B
{
public:
int d;
};
class E: virtual public C,virtual public D
{
public:
int e;
};
void main()
{
cout<<sizeof(E)<<endl;
}
VC6运行结果是32
如果class E继承的时候去掉一个virtual,改成:
class E: virtual public C,public D
则运行结果变成28,为什么?