类定义仅提供该类的类型定义,不占用内存空间,只有在定义了类的对象之后,编译系统才会给对象在内存中分配相应的内存空间,用以存放对象的数据成员值。
类是一种类型,sizeof(类)跟sizeof(int)相似,计算该类型实例化需要多少空间;
空类类型实例化,需要占1个字节;虚继承空类的空类,sizeof为4,因为涉及虚表。
空类类型为什么需占一个字节,深度探索c++对象模型中是这样说的:
那是被 编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。也就是说这个char是用来标识类的不同对象的