Question on multiple inheritance, virtual base classes, and object size in C++
问题 The following code prints 20, i.e. sizeof(z) is 20. #include <iostream.h> class Base { public: int a; }; class X:virtual public Base { public: int x; }; class Y:virtual public Base { public: int y; }; class Z:public X,public Y { }; int main() { Z z; cout << sizeof(z) <<endl; } Whereas if I don't use virtual base classes here, i.e. for the following code : sizeof(z) is 16. #include <iostream.h> class Base { public: int a; }; class X:public Base { public: int x; }; class Y:public Base { public: