[c++] 인터페이스와 다중 상속
인터페이스란 무엇인가?
인터페이스는 클래스가 구현해야 하는 동작을 정의하는 매우 중요한 요소입니다. C++에서는 인터페이스를 순수 가상 함수로 정의할 수 있습니다. 예를 들어, 다음과 같이 인터페이스를 정의할 수 있습니다:
class Interface {
public:
virtual void doSomething() = 0;
virtual int calculateSomething(int x, int y) = 0;
};
위 예제에서 Interface
클래스는 doSomething
과 calculateSomething
이라는 두 가지 순수 가상 함수를 포함하고 있습니다. 이러한 함수는 반드시 파생 클래스에서 구현되어야 합니다.
다중 상속과 인터페이스
C++에서는 하나의 클래스가 여러 개의 클래스로부터 상속받을 수 있는 다중 상속을 지원합니다. 이때 인터페이스를 사용하여 하나의 클래스가 여러 개의 인터페이스로부터 동작을 상속받을 수 있습니다.
다음은 다중 상속과 인터페이스를 함께 사용하는 간단한 예제입니다:
class Interface1 {
public:
virtual void method1() = 0;
};
class Interface2 {
public:
virtual void method2() = 0;
};
class MyClass : public Interface1, public Interface2 {
public:
void method1() override {
// Implement method1
}
void method2() override {
// Implement method2
}
};
위 예제에서 MyClass
는 Interface1
과 Interface2
로부터 동작을 상속받았습니다. 따라서 클래스 MyClass
는 method1
과 method2
를 반드시 구현해야 합니다.
다중 상속과 인터페이스를 사용함으로써 클래스 간의 관계를 더 잘 표현하고, 코드를 모듈화하고, 유연성을 확보할 수 있습니다. 하지만, 이러한 기능을 사용할 때에는 주의 깊게 설계해야 하며, 중복되는 함수명이 있을 경우 충돌을 방지하기 위한 조치가 필요합니다.