TIL 0210

jelly·2025년 2월 10일

TWeakObjPtr는 언리얼 엔진에서 객체의 안전한 참조를 제공하는 스마트 포인터입니다. 이 포인터는 UObject를 가리키며, 해당 객체가 메모리에서 삭제되었는지 여부를 확인할 수 있는 기능을 가지고 있습니다. TWeakObjPtr는 객체의 참조 카운트를 증가시키지 않기 때문에, 메모리 누수를 방지하는 데 유용합니다.

TWeakObjPtr의 특징
안전한 참조: TWeakObjPtr는 객체가 삭제되었는지 확인할 수 있어, 유효하지 않은 포인터를 사용하여 발생할 수 있는 오류를 방지합니다.
참조 카운트 증가 없음: TWeakObjPtr는 객체의 참조 카운트를 증가시키지 않으므로, 메모리 관리가 용이합니다.
UObject 전용: TWeakObjPtr는 UObject를 가리키는 데 사용되며, 일반 C++ 객체에는 사용할 수 없습니다.

#include "GameFramework/Actor.h"
#include "Containers/WeakObjectPtr.h"

class MyActor : public AActor
{
public:
    void SomeFunction()
    {
        // TWeakObjPtr 선언
        TWeakObjectPtr<AActor> WeakActorPtr = SomeOtherActor;

        // 객체가 유효한지 확인
        if (WeakActorPtr.IsValid())
        {
            // 유효한 경우, 객체에 접근
            AActor* Actor = WeakActorPtr.Get();
            // Actor에 대한 작업 수행
        }
        else
        {
            // 객체가 삭제된 경우 처리
        }
    }

private:
    AActor* SomeOtherActor; // 다른 액터의 포인터
};
profile
jelly

0개의 댓글