[c++] 다중 상속을 통한 다양한 기능의 조합

다중 상속을 사용하여 클래스를 설계할 때, 상속된 클래스들 간의 관계와 충돌을 주의해야 합니다. 때로는 다이아몬드 문제와 같은 상속 순환과 충돌 문제가 발생할 수 있습니다.

아래는 다중 상속을 통해 다양한 기능의 조합을 보여주는 간단한 C++ 코드입니다.

#include <iostream>

// 첫 번째 부모 클래스
class DataManager {
public:
    void processData() {
        std::cout << "Data processing" << std::endl;
    }
};

// 두 번째 부모 클래스
class GUIManager {
public:
    void drawUI() {
        std::cout << "Drawing UI" << std::endl;
    }
};

// 다중 상속을 통한 새로운 클래스
class NewClass : public DataManager, public GUIManager {
public:
    void performTasks() {
        processData(); // DataManager으로부터 상속한 함수 호출
        drawUI(); // GUIManager으로부터 상속한 함수 호출
    }
};

int main() {
    NewClass newObj;
    newObj.performTasks();
    return 0;
}

이 코드를 실행하면 새로운 클래스가 DataManagerGUIManager로부터 각각의 기능을 상속받아 performTasks 함수를 통해 두 기능을 모두 수행하는 것을 확인할 수 있습니다.

다중 상속은 강력한 기능이지만 주의하여 사용하여야 하며, 상속 관계와 충돌에 대해 이해하는 것이 중요합니다.