class A
{
public:
A();
~A();
int X;
};
A::A()
{
X = 5;
int Y = 4;
}
//..... in another file
A * objectOnHeap = new A();
在這種情況下,既然「objectOnHeap」在堆上,X也在堆上,即使它不是特別新出來的?在這種情況下,Y被分配到堆棧中(當然,超出範圍),對嗎?堆上的對象的成員變量是否也自動堆在堆上?
我想知道是否在嘗試設想如何將對象存儲在內存中時已將電線交叉。
'objectOnHeap'不是*堆在堆上。它在堆棧或數據段中。它的值是一個指針,它指向堆上的某個東西。 – 2009-09-22 17:08:17
@Rob Kennedy,你能詳細說說數據段嗎?我明白你的觀點,儘管指針本身在堆棧中,但它指向的數據存儲在堆上。 – BuckFilledPlatypus 2009-09-22 18:25:20