class
P{private: int
ival;public: P(); ~P(); int
GetVal(){ return
ival; }; virtual
int SetVal(int
val) { ival=val; };};在32位编译器下sizof(P)为8.
1.类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑。
2.普通成员函数与sizeof无关。
3.虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。
4.类的总大小也遵守类似class字节对齐的,调整规则。
本题中,int ival占4个字节,同时virtualintSetVal(intval)占用4个字节,一共是占用8个字节,选B
本文详细解析了在32位编译器环境下,一个包含私有整型变量和公有成员函数(包括一个虚函数)的类P的大小为何为8字节。解释了类大小的计算原理,包括成员变量占用的空间、虚函数表指针的考虑以及对齐规则。
26万+

被折叠的 条评论
为什么被折叠?



