参考文献:《深度探索C++对象模型》
运行平台:Visual Studio 2015
最近在研读大佬Lippman的《深度探索C++对象模型》,对其中的虚继承类的sizeof大小产生了兴趣,因此编码测试了一下。
1. 基类为空
废话不说,先上源码:
# include <iostream>
using namespace std;
class X
{
};
class Y :virtual public X
{
};
class Z :virtual public X
{
};
class A :public Y, public Z
{
};
int main(void)
{
cout << "X size: " << sizeof(X) << endl;
cout << "Y size: " << sizeof(Y) << endl;
cout << "Z size: " << sizeof(Z) << endl;
cout << "A size: " << sizeof(A) << endl;
return 0;
}
源码比较简单(弱智),类之间的关系如下:
1.1 win32平台
运行结果如下:
原因:</