[C++] 추상 클래스와 인터페이스

Eu4ng·2023년 1월 1일
0

C++

목록 보기
3/5

추상 클래스

하나 이상의 순수 가상 함수를 포함하는 클래스

순수 가상 함수 VS 가상 함수

가상 함수 : 파생 클래스에서 재정의할 것으로 기대하는 멤버 함수
순수 가상 함수: 파생 클래스에서 반드시 재정의해야 하는 멤버 함수

// 일반 클래스
class A {
public:
    virtual void foo(); //가상 함수
};
// 추상 클래스
class A {
public:
    virtual void foo() = 0; // 순수 가상 함수
};

인터페이스

  • 추상 클래스의 다중 상속으로 인한 모호성 문제를 해결하기 위해 사용
  • C++에서 직접적으로 인터페이스 형식을 제공하지는 않지만 순수 가상 함수를 이용하여 정의 가능
  • Java나 C# 등의 언어에서는 다중 상속을 금지하였으며, 인터페이스만 다중 상속이 가능
  • 언리얼 엔진은 C++ 기반이지만 다중 상속이 금지되었다

사용 예시

클래스의 구분은 추상 클래스 상속을 통해서 해결하고, 공통된 기능들은 인터페이스의 다중 상속을 통해 구현하는 것이 좋다

profile
초보 개발자

0개의 댓글