class A
{
public:
  A();
  ~A();
  int X;
};

A::A()
{
  X = 5;
  int Y = 4;
}

//..... in another file
A * objectOnHeap = new A();

在这种情况下,由于“objectOnHeap”在堆上,即使不是专门为X编写的,X也在堆上吗?在这种情况下,Y是在堆栈上分配的(当然超出了范围),对吗?

我想知道在尝试设想如何将对象存储在内存中时是否弄错了连线。

最佳答案

是的。在堆上。基本上,分配给堆上对象的空间足够容纳其所有成员变量。

关于c++ - 堆上对象的成员变量是否也自动在堆上?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1461064/

10-09 13:11