const (C++ 기준)
값을 변경하지 못하게 제한하는 키워드
언리얼 C++에서도 동일하게 “읽기 전용” 의미로 사용된다.
1. 함수 뒤 const
int32 GetScore() const의미
이 함수 안에서는
- 멤버 변수 변경 금지
- 상태 변경 금지
예시
int32 GetScore() const
{
Score = 100; // ❌ 에러
return Score;
}허용되는 것
int32 GetScore() const
{
return Score; // ⭕ 가능 (읽기만)
}핵심
const = "이 함수는 객체 상태를 바꾸지 않는다"2. 포인터 const (자주 헷갈리는 부분)
(1) 값 변경 금지
const int32* Ptr;👉 값 변경 불가
*Ptr = 10; // ❌(2) 포인터 자체 변경 금지
int32* const Ptr;👉 주소 변경 불가
Ptr = 다른주소; // ❌(3) 둘 다 금지
const int32* const Ptr;👉 값도 못 바꾸고, 주소도 못 바꿈
3. 함수 매개변수 const
void PrintName(const FString& Name)의미
- 복사 안 함 (효율)
- 값 수정 금지
Name = "Test"; // ❌4. const를 쓰는 이유
1) 안전성
실수로 값 변경 방지2) 의도 표현
이 함수는 읽기 전용이다3) 최적화 도움
컴파일러 최적화 가능한 줄 정리
const는 “이 값/함수는 변경하지 않는다”는 의미로, 함수 뒤에 붙으면 객체 상태 변경을 금지하는 읽기 전용 함수가 된다.