[c++] 인터페이스와 클래스의 결합 방법

C++에서는 인터페이스와 클래스를 결합하여 다양한 유연성을 제공할 수 있습니다. 이 기능을 통해 코드 재사용성을 높일 수 있고, 계층 구조를 잘 표현할 수 있습니다. 이번에는 C++에서 인터페이스와 클래스를 어떻게 결합하는지에 대해 살펴보겠습니다.

1. 인터페이스 정의

C++에서 인터페이스는 클래스와는 다르게 순수 가상 함수만을 정의한 추상 클래스입니다. 일반적으로 다음과 같이 선언됩니다.

class Interface {
public:
    virtual void doSomething() = 0;
    virtual int calculate(int a, int b) = 0;
    // ...
};

2. 클래스에서 인터페이스 상속

인터페이스를 사용하기 위해 클래스에서 해당 인터페이스를 상속받아야 합니다. 예를 들어, 다음과 같이 클래스에서 인터페이스를 구현할 수 있습니다.

class MyClass : public Interface {
public:
    void doSomething() override {
        // 구현
    }

    int calculate(int a, int b) override {
        return a + b;
    }
};

3. 인터페이스를 이용한 다형성 구현

클래스가 특정 인터페이스를 상속받으면, 해당 인터페이스를 자료형으로 사용할 수 있습니다. 이를 이용하면 다형성(polymorphism)을 구현할 수 있습니다.

void performAction(Interface* obj) {
    obj->doSomething();
}

int main() {
    MyClass obj;
    performAction(&obj);
    return 0;
}

종합

C++에서 인터페이스와 클래스를 결합하는 방법을 알아보았습니다. 이러한 방식을 통해 코드를 모듈화하고, 응집성 있는 구조를 유지할 수 있습니다. 인터페이스를 통한 다형성을 활용하여 유연하고 확장 가능한 코드를 작성할 수 있습니다.

더 많은 내용을 학습하기 위해, GeeksforGeeks 등의 자료를 참고하시기 바랍니다.