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

cradia3512님의 프로필 이미지
cradia3512

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

2강 캐릭터와 입력 시스템

2강 11:20 전방 선언 불가인 이유가 궁금합니다.

작성

·

464

·

수정됨

0

안녕하세요!

2강 11:20 부분에서 CreateDefaultSubobject<> 안에 UStaticMeshComponent를 전방 선언할 수가 없고 헤더에 포함시키는 이유가 궁금합니다!

이유를 찾기가 힘들어서 질문드립니다

답변 1

0

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

이를 이해하기 위해서는 C++언어의 선언(declaration)과 정의(definition)에 대한 개념이 있어야 할텐데요,
간단하게 이야기해서 선언에서는 어떤 객체인지 설계도만 지정해주고, 실제 내용물(코드)은 정의에서 채워줍니다.
이 때 헤더파일에 예를 들어 UStaticMeshComponent와 같은 클래스를 include하면, include가 계속 이어져서 컴파일 타임이 느려지는 문제가 발생합니다. 이런 연유로 가능하다면 설계도만 대략 지정하는 형태로 전방선언을 하고, 코드를 만들어야 하는 cpp에서는 실제 해당 객체를 사용해야 하기 때문에, 그게 진짜 어떤 객체인지 알 수 있도록 헤더를 추가해줍니다.
객체의 전방선언은 포인터만 가능하며, 상호참조의 문제도 해결할 수 있는 유용한 기법입니다.

 

cradia3512님의 프로필 이미지
cradia3512

작성한 질문수

질문하기