에 :클래스 개인 데이터 - 다음 코드에서 스택 또는 힙
class Array {
public:
int& operator[] (unsigned i) { if (i > 99) error(); return data[i]; }
private:
int data[100];
};
int main()
{
Array a;
a[10] = 42;
a[12] += a[13];
...
}
새가를 할당하는 데 사용되지 이후 스택 타입의 배열은 변수를 (내가 틀렸다면 수정) . Array 클래스에는 int data [100]가 있으며 연산자 오버로드는 데이터의 특정 인덱스에 대한 참조를 반환합니다.
question을 참조하십시오.
제 질문은 int 데이터 [100]이 (가) 스택 또는 힙에 있는지 여부입니다. 나는 그것이 스택이 아니어야한다고 생각한다. 그렇지 않다면 위와 같은 레퍼런스 리턴이 어떻게 작동 할 수 있을까?
감사합니다. 당신이 a
을 언급 한대로 스택에 할당 된 이후
기술적으로 a라는 객체는 자동 저장 기간과 관련됩니다. 언어는 이러한 종류의 스토리지를 구현하기위한 스택 구조를 필요로하지 않습니다. 그냥 "기술": D –
@EdS. 설명을 주셔서 감사합니다 ;-) –