2013亚马逊面试题--虚继承的内存模型分析
作者:网络转载 发布时间:[ 2013/1/18 10:46:21 ] 推荐标签:面试
代码四:
class A
{
};
class B
{
};
class C
{
};
class D
{
};
class E: public virtual A , public virtual B , public virtual C , public virtual D
{
};
void main()
{
E ee;
cout<<"sizeof A: "<<sizeof(A)<<endl;
cout<<"sizeof B: "<<sizeof(B)<<endl;
cout<<"sizeof C: "<<sizeof(C)<<endl;
cout<<"sizeof D: "<<sizeof(D)<<endl;
cout<<"sizeof E: "<<sizeof(E)<<endl; //
}
输出结果是:
再看看内存模型吧
从vbtable来看,里面存储的偏移class E的大小默认固定布局是4bytes,共享布局里面classA、class B和classC的大小是12bytes。所以是16bytes。
我也是个菜鸟,也只能这么多了,有不对的地方希望指出来,我也改正下。
相关推荐

更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11