包含虚拟关键字和虚拟字符的类的大小

Size of class with virtual keyword and character in it

本文关键字:虚拟 字符 关键字 包含      更新时间:2023-10-16

我运行了以下代码:

#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。谁能给我解释一下是什么引起了这个问题?

就看填充物了。编译器已经将你的类打包成4个字节的倍数。