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는 스택에 할당됩니다 (물론 범위를 벗어납니다). 맞습니까?힙에있는 오브젝트의 멤버 변수도 자동으로 힙에 있습니까?
개체가 메모리에 저장되는 방법을 생각하려고 할 때 전선을 교차 시켰는지 궁금합니다.
'objectOnHeap'은 힙에 *없는 *입니다. 스택 또는 데이터 세그먼트에 있습니다. 그 값은 힙의 어떤 것을 가리키는 * 포인터입니다. –
@Rob Kennedy, 데이터 세그먼트에 대해 자세히 설명해 주시겠습니까? 포인터 자체가 스택에 있지만 포인터가 가리키는 데이터가 힙에 저장되어 있다는 점을 알 수 있습니다. – BuckFilledPlatypus