C++——类的大小

83 阅读1分钟

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 的倍数时会进行填充。