面试真题

C++ · 中等 · 虎牙

类对象的大小由哪些因素决定?

中等 C++ 🎤 虎牙
参考答案
结论:C++类对象大小由非静态数据成员、虚函数指针及内存对齐填充决定。因素:1)非静态成员变量总和(静态成员、成员函数不占对象空间);2)若存在虚函数或继承虚类,对象含vptr(通常8字节,32位4字节);3)继承时基类子对象大小计入,含基类vptr;4)编译器按最大成员对齐(如8字节对齐),成员间插入填充字节;5)空类或空结构体大小为1字节以保唯一地址。示例:class A{char c; int i; virtual void f();}在64位下含vptr8+char1+填充3+int4=16字节。
题目整理自公开面经,答案由校招宝自研生成,仅供参考