虚继承后sizeof和开发人员命令提示符算出的类 字节数不一样

问题遇到的现象和发生背景

通过sizeof函数得出的字节数和在开发人员命令提示符中的不一样

用代码块功能插入代码,请勿粘贴截图

class Father
{
public:

int age;

};

class Son1 : virtual public Father
{

};

运行结果及报错内容

sizeof为16 开发人员命令提示符为8

我的解答思路和尝试过的方法

我是64位,指针不应该是8吗?加一个int应该是12啊,是虚继承里面我有什么不懂的吗?

可能是有字节对齐 8字节对齐了

这个和虚继承没关系。
64位系统默认8字节对齐,并且Son1 中最长数据类型的大小是8字节,所以有效对齐值是8字节。根据内存对齐规则,Son1的总大小为有效对齐值的整数倍。而派生类Son1有 8字节虚基指针+4字节int 总共12字节。所以需要再补4字节,变成8的整数倍