참조 vs 포인터
우리가 앞서 포인터에 대해 배웠었지만, 포인터와 아주 비슷한 개념으로 대신 쓸 수 있는 참조도 존재한다.
둘 다 메모리 주소를 나타내는 것인 동일하지만, 두 개념의 차이로 재할당 가능 여부가 존재한다.
포인터는 포인터를 변경해서 언제든지 새 메모리 주소, 새 액터, 새 컴포넌트 가리키기 등이 가능하지만,
참조는 한 번 가리키면, 다른 값을 가리키는 것이 불가능하다.
따라서 참조는 해당 변수 전용의 별칭느낌으로 사용된다.
또한 포인터는 null 할당이 가능하지만, 참조는 선언과 동시에 초기화가 이루어져야하므로 null 할당이 불가능하다.
이제 간단하게 참조를 이용하여 테스트를 해보자.
간단하게 데미지 변수를 선언하고, 해당 변수를 참조한 DamageRef를 선언해주었다.
포인터가 *를 선언했듯이, 참조는 &선언이 필요하다.
이후에 DamageRef를 로그에 출력해보면 Damage의 값인 0이 출력된다.
이번엔 참조에 추가적으로 값을 할당해보자.
위 코드의 경우 어떤 값을 출력하게 될까?
답은 5, 5를 출력하게 된다.
DamageRef의 경우 5를 할당했으니 5로 변경되고, DamageRef가 Damage의 참조기 때문에 Damage의 값 또한 5로 변경하게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-21 (0) | 2024.03.22 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-20 (0) | 2024.03.22 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-17 (0) | 2024.03.21 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-16 (0) | 2024.03.21 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-15 (0) | 2024.03.21 |