定义类时常用的成员变量存放在哪里?

Jus*_*ong 1 c++ class c++11

我定义了一个简单的类\xef\xbc\x9a

\n\n
class A\n{\npublic:\n    int a;\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

sizeof(A)4,所以我很困惑,当我刚刚定义这样一个类时,公共成员变量a存储在哪里?栈还是堆?

\n

Luc*_*ore 5

它没有存储在任何地方。仅当您实际创建 类型的对象时,它才会在内存中占据一个位置A

int main()
{
   A obj1; // obj1.a will be on the "stack"
   A* pObj2 = new A; // pObj2->a will be on the "heap"
}
Run Code Online (Sandbox Code Playgroud)

  • @AndrewGong,如果我画一个房子的建筑草图,我可以说它的大小是 5 米,但是在我建造它之前,没有任何实际大小的房子。 (2认同)