'새'키워드와 클래스 저장 : When should I use the new keyword in C++?이 질문과 병행
이의 나는 다음과 같은 코드 구조 있다고 가정 해 봅시다 :
class Foo{
private:
int a;
int b;
/* ect */
};
class Bar{
private:
Foo A;
/* ect */
};
int main() {
Bar *b;
b = new Bar();
// call b->methods()
delete b;
};
내가 b
위의 링크에서 알 힙 (무료 저장소입니다) 할당. 하지만 내부 A
내용은 b
안에 무엇이 있습니까? A
도 힙을 할당한다고 가정하는 것이 안전한가요?
'b'가 프리 스토어에 할당되었지만 _its 내용이 프리 스토어에 할당된다는 것은 무엇일까 ?_? –
사실'b'는 무료 저장소에 없습니다. 'b'는 포인터이고'main' 함수의 자동 변수입니다. 'main'의 두 번째 줄에 할당되면, 그것은 자유 저장소에서 할당 된 메모리를 가리 킵니다. 대담한 차이와 나는 당신이 이미 그것에 관해 알기를 기대한다. 그러나 충분한 사람들은 지나치게 혼란스러워서 그런 것들을 똑바로 유지할 가치가 있다고 생각한다 .-) 마찬가지로 클래스 b도없고, 클래스'Bar'이다. , 'b'의 참조는 그 클래스의 인스턴스이다. –
@SteveJessop 예, 저는 그가 사용하고있는 용어를 사용하여 이해할 수있었습니다. 그러나 당신의 요지는 잘 받아 들여지고 있습니다. 아마'* b'가 무료 저장소에 할당되었다고 말하는 것이 낫습니다. –