1. 空类
C++标准规定类的大小不为0,空类的大小为1。
当类不包含 虚函数 和 非静态数据成员 时,其对象大小也为1。 如果在类中声明了虚函数(不管是1个还是多个),那么在实例化对象时,编译器会自动在对象里安插一个指针指向虚函数表VTable,在32位机器上,一个对象会增加4个字节来存储此指针,它是实现面向对象中多态的关键。
一个类中,虚函数、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的。
对象大小 = 向虚函数表的指针的大小 + 所有非静态数据成员大小 + Aligin字节大小(依赖于不同的编译器)。