这个问题非常棒!首先sizeof 取类大小,即数据成员大小.但不能包括静态成员,因为是static相对整个类而言,而不是单个对象.所以在class B里的static int b,不算大小.再看,函数.函数调用其实在编译器处理是把对象的this指针传过去进行调用,所以函数不占空间.(我的意思是对sizeof操作函数无影响,编译器当然要保存每个类的所有函数,即处理的符号表). 但是对虚函数来说,就不同了.由于要进行动态关联,不能由编译器静态关联.所以办法是在每个类开始,定义了一个指针,指向虚函数表,即sizeof时要算上这个指针.再来,就是对齐的问题了.类class的处理和结构struct的处理非常相似,为了处理方便,按照最大宽度
|