• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

24.04.04 03:30 작성 조회수 98

0

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.06

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

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