具有虚拟关键字和字符的类的大小

时间:2015-06-04 13:50:01

标签: c++ c++11

我运行了以下代码。

#include <iostream>
using namespace std;

class Base
{  
    char c;

    public:

        virtual ~Base()
        {
        }
};

int main()
{   
  cout << sizeof(Base) << endl;
  return 0;
}

1)大小为4(对于vptr)+ 1(对于char)。但结果是8.为什么会这样?

2)我用一个int变量替换了char,输出仍然是8.有人可以解释一下导致这个问题的原因吗?

1 个答案:

答案 0 :(得分:3)

它归结为填充。编译器已将您的类打包为4个字节的倍数。