인프런 커뮤니티 질문&답변

pakheae님의 프로필 이미지

작성한 질문수

[게임 프로그래머 도약반] DirectX11 입문

Direct3D의 초기화

스마트포인터에 대해질문있습니다

작성

·

180

0

안녕하세요 gamobject 객체에서 addcomponet 를 호출 하여 weak_ptr 로 gameject 를 componet 클래스에서 참조하고있다고 할때  gameobject 가 소멸하면 component 도 소멸하는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
pakheae님, 질문하신 내용에 대해 답변드립니다.
스마트 포인터 중 weak_ptr는 객체를 소유하지 않고 참조만을 가지는 포인터입니다. 따라서 gameobject객체에서 addcomponent를 호출하여 component 클래스에서 gameobjectweak_ptr로 참조한다고 할 때, gameobject가 소멸되더라도 weak_ptr는 소유권을 가지지 않기 때문에 component 객체의 소멸을 직접적으로 일으키지는 않습니다. 하지만, gameobject에 대한 참조가 무효화됨을 weak_ptr를 통해 알 수 있으며, 이는 weak_ptrexpired() 함수를 통해 확인할 수 있습니다. gameobject의 소멸은 component 객체에 대한 참조가 더 이상 유효하지 않음을 의미하지만, component 객체의 소멸을 직접적으로 의미하는 것은 아니기에 component의 생명 주기는 gameobject와 독립적으로 관리되어야 합니다.

원하는 답변을 얻으셨기를 바랍니다. 추가적인 질문이 있으시다면 문의해주세요. 감사합니다.

pakheae님의 프로필 이미지

작성한 질문수

질문하기