平时所声明的类只是一种类型定义,它本身是没有大小可言的,如果用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。
- 首先,类大小的计算遵循结构体的对齐原则
- 类的大小与普通数据成员有关,与成员函数和静态成员无关。即普通成员函数,静态成员函数,静态数据成员,静态常量数据成员均对类的大小无影响
- 虚函数对类的大小有影响,是因为虚函数表指针带来的影响
- 虚继承对类的大小有影响,是因为虚基表指针带来的影响
- 空类的大小是一个特殊情况,空类的大小为1
静态数据成员之所以不计算在类的对象大小内,是因为类的静态数据成员被该类所有的对象所共享,并不属于具体哪个对象,静态数据成员定义在内存的全局区。
https://blog.youkuaiyun.com/fengxinlinux/article/details/72836199