위크 포인터 3

[언리얼 C++] 위크 포인터 사용법

위크 포인터는 개체에 대한 약한 참조를 저장합니다. 쉐어드 포인터 또는 쉐어드 레퍼런스와 달리 위크 포인터는 참조하는 개체의 소멸을 방지하지 않습니다. 그렇기 때문에 위크 포인터가 참조하는 개체에 액세스하기 전에 쉐어드 포인터로 만들어야 합니다. 이렇게 하면 개체를 사용하는 동안 개체가 계속 존재할 수 있습니다. 1. 선언, 초기화 및 할당 // Allocate a new data object and create a strong reference to it. TSharedRef ObjectOwner = MakeShared(); // Create a weak pointer to the new data object. TWeakPtr ObjectObserver(ObjectOwner); 빈 위크 포인터를 만들거..

[언리얼 C++] 스마트 포인터 라이브러리 (2)

언리얼 스마트 포인터 라이브러리에 대한 기본 설명은 [언리얼 C++] 스마트 포인터 라이브러리 (1) (tistory.com) 글을 참고하시기 바랍니다. 이 글에서는 스마트 포인터 라이브러리의 부가적인 기능들에 대해 알아보겠습니다. 1. 헬퍼 클래스와 함수 언리얼 스마트 포인터 라이브러리는 스마트 포인터를 보다 쉽고 직관적으로 사용할 수 있도록 다양한 헬퍼 클래스와 함수를 제공합니다. 헬퍼 클래스 설명 TSharedFromThis TSharedFromThis에서 클래스를 파생시키면 AsShared 혹은 SharedThis 함수가 추가됩니다. 이러한 함수들을 통해 오브젝트에 대한 TSharedRef를 구할 수 있습니다. 헬퍼 함수 설명 MakeShared 및 MakeShareable 일반 C++포인터로 쉐..

[언리얼 C++] 스마트 포인터 라이브러리 (1)

언리얼 스마트 포인터 라이브러리는 메모리 할당과 추적의 부담을 해소해주도록 설계된 C++11 스마트 포인터들의 커스텀 구현입니다. 이 구현에는 업계 표준인 쉐어드 포인터, 위크 포인터 그리고 유니크 포인터가 포함되어 있습니다. 또한 null이 불가능한 쉐어드 포인터와 같은 역할을 하는 쉐어드 레퍼런스도 추가되었습니다. 단, 언리얼 오브젝트는 게임 코드에 더 최적화된 별도의 메모리 추적 시스템을 사용하기 때문에 이러한 클래스들은 UObject 시스템과 사용할 수 없습니다. 1. 스마트 포인터 타입 스마트 포인터 타입 설명 Shared Pointers(TSharedPtr) 쉐어드 포인터는 참조하는 오브젝트를 소유하며, 무기한으로 오브젝트의 소멸을 방지하고, 참조하는 쉐어드 포인터 또는 쉐어드 레퍼런스가 없을..