언리얼 엔진/C++

언리얼엔진 class 키워드와 전방선언

mane 2021. 12. 28. 13:36
728x90
반응형

 언리얼 엔진에서 해더 파일(.h 파일)에 클래스 변수를 선언할 때 2가지 방법이 있습니다.

 

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
class USpringArmComponent* SpringArm;

 class 키워드를 사용한 선언과

 

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
USpringArmComponent* SpringArm;

 class 키워드를 사용하지 않은 선언입니다.

 

 SpringArmComponent를 사용하기 위해서는 #include "GameFramework/SpringArmComponent.h"를 선언해 주어야합니다. 다만 선언하는 위치가 '.h 파일'이냐 '.cpp 파일'이냐에 따라서 class 키워드를 사용해야합니다.

 보통 #include는 '.h 파일'에 선언하지만 이럴 경우 컴파일 시간이 늘어나게 되며 의존성이 증가됩니다.

 하지만 '.cpp 파일'에 선언하여 전방선언을 사용하면 컴파일 시간을 줄어들고 의존성을 낮출 수 있습니다.

 

 '.h 파일'에 #include "GameFramework/SpringArmComponent.h"을 선언하지 않고 전방선언을 사용하면 컴파일러가 USpringArmComponent* SpringArm이 무엇인지 알 수가 없습니다. 따라서 전방선을 사용할 때 class 키워드를 붙여 클래스라고 알려줍니다.

 

출처 : https://lykanstudio.tistory.com/16

728x90
반응형