C++ 클래스 멤버 변수 객체에 대한 궁금증
글쓴이: hano881112 / 작성시간: 화, 2015/05/12 - 6:16오후
검색 능력이 떨어져서 검색이 안되네요ㅠ 처음으로 질문 남깁니다.
우선 이 글을 읽어주시는 고수님들 감사드립니다 ㅠㅠ..
C++에서 클래스 멤버 변수로써의 정적 생성 객체에 대한 질문인데요.
class A{ private: B b; .. }; class B{ .. }
다음과 같이 클래스 A의 멤버 객체로 B를 스택에 올리게 되면 B의 소멸 시기에 대해 딱히 생각해 주지 않아도 되는건가요?
그리고 만약 A가 힙에 동적 생성이 되었다면 B는 어느 메모리에 올라가게 되는지도 의문입니다..(생성된 각 객체에 대해 각각 다른 스택 영역이 주어지는 건가요?)
매우 궁금합니다 ㅠㅠ
Forums:
클래스 A가 소멸될 때, B도 같이 소멸됩니다.
클래스 A가 소멸될 때, B도 같이 소멸됩니다. (A,B 소멸자에서 cout등으로 출력해 보세요)
클래스 A의 인스턴스를 지역객체(스택 메모리)로 잡으면 멤버변수 B도 같이 스택에 생성됩니다.
(A의 인스턴스를 위한 스택을 잡을 때, 멤버변수인 B도 포함할 수 있는 크기의 스택을 잡습니다)
클래스 A의 인스턴스를 동적할당 할 때도 마찬가지입니다.
(A의 인스턴스를 위한 동적 메모리를 잡을 때, 멤버변수 B도 포함할 수 있는 크기의 동적 메모리를 할당합니다)
Signature :) - "여유를 갖고 행동하되 게을러지지 말자"
감사합니다!
너무 단순한 문제인데 아무래도 확신할 수가 없어서 질문을 올리게 되었습니다 ㅠ
정말 감사합니다..!!
댓글 달기