当继承关系中不存在虚继承时:
class B{
public:
int i;
};
class D:public B{
};
此时两个类的sizeof()执行结果:
cout<<sizeof(B)<<endl;
cout<<sizeof(D)<<endl;
当继承关系中存在虚继承时:
class A{
public:
int i;
};
class C:virtual public A{};
class B:virtual public A{};
class D:public B,C{};
此时四个类的sizeof()执行结果:
cout<<sizeof(A)<<endl;
cout<<sizeof(B)<<endl;
cout<<sizeof(C)<<endl;
cout<<sizeof(D)<<endl;