C++ sizeof 的有关问题, 有一点难度

C++ sizeof 的问题, 有一点难度

求大侠, 帮忙解惑一下,
下面的sizeof, 为什么输出时16

#include <stdio.h>
#include <vector>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <fstream>
#include <assert.h>
#include <math.h>
#include <string>
#include <list>
#include <iostream>
#include <new.h>
using namespace std;

class A
{
    int a;
};

class B
{
    int b;
};

class C
{};

class D
{};

class E: public virtual A, public virtual B, public virtual C, public virtual D
{};

void main()
{
    cout << sizeof(E) << endl; //问题, 为什么是16?
}
------解决思路----------------------
C++ sizeof 的有关问题, 有一点难度
楼主你骗我,我为什么运行是12