작성
·
113
0
UTeacher나 UStudent는 ILessonInterface 클래스도 상속을 받고있는데 Super키워드가 UPerson만을 가리키는 이유가 궁금합니다.
답변 2
0
순수 C++의 상속 체계와 언리얼 엔진의 상속 체계를 둘로 나누어 생각해보시면 좋습니다.
지금 말씀주신 부분은 언리얼 인터페이스를 순수 C++ 관점에서 다중 상속으로 해석하는 방법입니다.
이는 C++ 문법을 사용해 기반 클래스를 명시해 가상 함수를 호출해주면 됩니다.
이에 반해 언리얼 엔진의 상속 체계는 C++의 다중 상속 시스템을 다시 포장해 C#이나 Java와 같이 단일 상속과 Multiple Interface로 처리하는 것입니다.
이 경우 Actor와 같은 UCLASS 매크로 기반 클래스만이 단일 상속의 주체가 되며 UINTERFACE 매크로로 설정한 클래스는 부가 인터페이스로 취급됩니다.
이러한 규칙은 언리얼 엔진이 만든 체계이기에 C++에는 없는 언리얼 엔진이 지정하는 매크로를 사용해야 하는데, 이를 위해 언리얼 엔진이 제공하는 키워드가 Super로 이해해주시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김민재님께서 질문해주신 내용은 언리얼 엔진에서의 상속과 Super
키워드의 사용에 관한 내용입니다. Super
키워드는 주로 부모 클래스의 함수를 호출할 때 사용되며, 언리얼에서의 클래스 설계에 따라 어떻게 동작하는지를 이해하는 것이 중요합니다.
UTeacher
나 UStudent
가 ILessonInterface
와 UPerson
클래스를 다중상속 받고 있다고 하지만, Super
키워드는 기본적으로 ‘직계 부모 클래스’ 즉, UObject
를 상속받은 클래스 체계에서 작동합니다. 언리얼 엔진의 클래스 구조에서 Super
는 주로 클래스의 상속 계층 중 제일 가까운 부모 클래스의 멤버 함수를 호출하기 위한 것이며, 인터페이스는 일반적으로 순수 가상 함수로 구현되기 때문에 이와는 다른 개념으로 처리됩니다.
비슷한 주제에 대한 논의가 이미 강의 질문 게시판에 올라와 있으며, 강사님께서 어떤 식으로 설명하셨는지 확인해보는 것이 도움이 될 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.