看了太多人问的 “定义体为空的类的大小是多少?以及不同的继承类型的基类以及虚继承得到的类的大小”,云云之类的。太多这些问题了,今天笔者希望用最简单易懂的语言以及最清晰的图解告诉大家,这其实并不高深。
注:下面的struct换成class依旧成立。
问题 1:空类的大小是多少?
例如: struct A { }; // 答案是1 , 一个显而易见的道理,如果利用该类型定义两个对象,即
A a, b; 那么a和b的地址总该有吧,并且两者地址应该不一样吧,因此编译器为其分配一个字节的大小。