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

nasukwang님의 프로필 이미지
nasukwang

작성한 질문수

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

11강 언리얼 컨테이너 라이브러리 II - 구조체와 Map

구조체 전방선언

작성

·

721

0

강의에서는 구조체를 게임인스턴스 헤더에 바로 만들어서

상관없는데

 

나중에 따로 헤더파일을 만들어서 구조체를 관리하게 되면

이거도 다른 곳에서 쓸 때 전방선언을 해줘야 하는건가요?

 

그렇다면 TObjectPtr 을 써서 전방선언을 해야 하나요?

 

아니면 구조체는 간단하니까 바로 헤더파일을 인클루드 하면 되나요?

 

초보자라 이 질문이 맞는 질문인지도 모르겠네요

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

안녕하세요. 언리얼 헤더툴(UHT) 분석을 거치는 USTRUCT 구조체는 별개 헤더로 선언 가능한데, 에디터에서 마법사를 제공해주지 않아서 작업이 좀 귀찮습니다. 실제로 에픽 소스코드를 봐도 USTRUCT 구조체만 별도로 파일을 분리하는 경우는 별로 없습니다. 그래서 보통은 마법사가 생성해주는 UOBJECT 헤더에 포함시켜서 선언합니다. 아니면 CLASS 내부에 Inner로 선언하기도 하고요.
USTRUCT가 아닌 일반 구조체는 그냥 C++ 쓰듯이 선언하고 사용해주면 됩니다.
전방선언은 조금은 다른 주제인데, 한 헤더 파일에서 다른 헤더파일의 참조를 최대한 없애기 위해 사용합니다.
C++ 문법에서 struct와 class의 동작은 거의 비슷하지만, 보통 언리얼 엔진에서 구조체는 동적할당 포인터로 사용하진 않습니다. 그럴 때는 class로 선언하시는게 좋을 것 같아요.

nasukwang님의 프로필 이미지
nasukwang
질문자

아하 쉽게 설명해 주셔서 감사합니다. 엔진에서는 구조체 파일을 따로 만들길래 궁금했었습니다. 감사합니다.

nasukwang님의 프로필 이미지
nasukwang

작성한 질문수

질문하기