类内虚函数表内存分布

网易招聘上有这样一道题:

// ttt.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"

class A
{
    char a[2];

public:
    //void CommonFunction();
    virtual void aaa() {};
};
class B :public virtual A
{
    char b[2];
    char a[2];
public:
    virtual void bb() {};
    virtual void aa() {};

};
class C :public virtual B
{
    char aa[2];
    char bb[2];
    char cc[2];
public:
    virtual void ccc() {};
};
int main()
{
    return 0;
}

问三个类占用的字节数分别为多少。
这里写图片描述

这里写图片描述

这里写图片描述

可以看到,首先是该类中按声明顺序排列的虚函数的指针,每个为4个字节,然后是该类中的变量,其次是继承的父类中的内存分布。

猜你喜欢

转载自blog.csdn.net/Lunar_Queen/article/details/80508086