sizeof(自定义类)
类的大小指的是该类型对象所占用的内存空间大小。
class MyClass {
public:
int publicVar;
void publicFunc() {}
private:
int privateVar;
static int staticVar;
};
int main() {
MyClass obj;
cout << sizeof(obj) << endl; // 输出 8,因为只计算两个 int 成员变量的大小
cout << sizeof(MyClass) << endl; // 输出 8,与 sizeof(obj) 相同
return 0;
}
其他要点(了解):
- 类的大小与其对象的大小一致。
- 类的大小是所有非静态成员变量大小之和,与成员函数和静态成员变量无关。
- 类成员的构造顺序:先执行构造函数初始化列表,同时执行父类构造函数,最后构造成员。
- 类内部编译顺序:先编译所有成员变量,然后编译成员函数。
- 类外部编译顺序:按照代码行顺序编译。
- 内存对齐:为了提高 CPU 访问效率,成员变量会按照 4 字节对齐,不足 4 的倍数时会进行填充。