본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ 순수 가상 함수(Pure Virtual Function)

by MRG 2024. 10. 24.
728x90
반응형

 

▣ 코드설명 
PURE_VIRTUAL()은 Unreal Engine에서 순수 가상 함수를 선언하는 매크로입니다. 

C++의 "순수 가상 함수(pure virtual function)"는 추상 클래스를 정의할 때 사용됩니다. 

추상 클래스는 특정 메서드가 자식 클래스에서 반드시 구현되어야 한다는 규칙을 정하는 데 사용됩니다.


- Unreal Engine에서는 PURE_VIRTUAL() 매크로를 사용해 더 쉽게 정의할 수 있습니다.

PURE_VIRTUAL()을 사용하면, 함수가 호출될 때 에러 메시지를 출력하도록 하고,

해당 함수는 반드시 자식 클래스에서 구현되어야 함을 명시하게 됩니다.

 

 

▣ 순수 가상 함수(Pure Virtual Function)란?
순수 가상 함수(pure virtual function)는 C++에서 구체적인 구현이 없는 함수를 말하며, 

반드시 자식 클래스에서 구현해야만 하는 함수를 의미합니다. 

이를 통해 추상 클래스(abstract class)를 정의할 수 있으며, 이 클래스는 객체로 만들 수 없고, 오직 상속을 통해서만 사용할 수 있는 특성을 갖습니다.


▣ 순수 가상 함수의 역할
공통 인터페이스 정의: 여러 클래스가 공통적으로 가져야 할 메서드를 추상 클래스로 정의하고, 해당 클래스에서 어떤 기능을 구현해야 하는지를 강제합니다. 상속받은 클래스들은 반드시 그 함수를 구현해야 합니다.


추상 클래스 구현: 순수 가상 함수를 하나라도 가지는 클래스는 추상 클래스가 됩니다. 

추상 클래스는 직접적으로 객체를 생성할 수 없고, 자식 클래스에서만 사용될 수 있습니다.


▣ 언제 사용하나?
순수 가상 함수와 추상 클래스는 여러 클래스가 동일한 인터페이스를 가져야 할 때 사용합니다. 이 방법을 통해 부모 클래스는 메서드의 틀만 정의하고, 각 자식 클래스에서 그 메서드를 구현할 수 있습니다. 아래와 같은 상황에서 유용합니다:

공통 동작을 정의하고 싶을 때: 예를 들어, 다양한 동물들이 소리를 낼 수 있지만, 각 동물의 소리는 다릅니다. 이런 경우 Animal이라는 추상 클래스를 만들고, MakeSound()라는 순수 가상 함수를 정의함으로써 자식 클래스들이 각자의 소리를 내는 메서드를 구현하게 할 수 있습니다.

강제적으로 특정 메서드를 구현해야 할 때: 자식 클래스에서 반드시 구현되어야 하는 중요한 메서드가 있다면, 순수 가상 함수로 정의함으로써 해당 메서드 구현을 강제할 수 있습니다.

다형성(Polymorphism)을 활용할 때: 순수 가상 함수와 추상 클래스를 사용하면 다형성을 쉽게 구현할 수 있습니다. 부모 클래스 타입의 포인터나 참조를 사용해 자식 클래스의 구현을 실행할 수 있습니다.




728x90
반응형

댓글