[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;
}
이 코드를 실행하면 새로운 클래스가 DataManager
와 GUIManager
로부터 각각의 기능을 상속받아 performTasks
함수를 통해 두 기능을 모두 수행하는 것을 확인할 수 있습니다.
다중 상속은 강력한 기능이지만 주의하여 사용하여야 하며, 상속 관계와 충돌에 대해 이해하는 것이 중요합니다.