..

Search

59) 다중 상속

59) 다중 상속

다중 상속


다중 상속(multiple inheritance)

다중 상속(multiple inheritance)이란 두 개 이상의 클래스로부터 멤버를 상속받아 파생 클래스를 생성하는 것을 의미합니다.

C++에서는 쉼표(,)를 사용하여 상속받을 여러 개의 기초 클래스를 명시하는 것으로 간단히 다중 상속을 구현할 수 있습니다.

문법

class 파생클래스이름 : 접근제어지시자 기초클래스이름, 접근제어지시자 기초클래스이름[, 접근제어지시자 기초클래스이름, ...]

{

    // 파생 클래스 멤버 리스트

}


다중 상속의 문제점

다중 상속은 여러 개의 기초 클래스가 가진 멤버를 모두 상속받을 수 있다는 점에서 매우 강력한 상속 방법입니다.

하지만 이러한 다중 상속은 단일 상속에는 없는 여러 가지 새로운 문제를 발생시킵니다.

 

1. 상속받은 여러 기초 클래스에 같은 이름의 멤버가 존재할 가능성이 있습니다.

2. 하나의 클래스를 간접적으로 두 번 이상 상속받을 가능성이 있습니다.

3. 가상 클래스가 아닌 기초 클래스를 다중 상속하면, 기초 클래스 타입의 포인터로 파생 클래스를 가리킬 수 없습니다.

 

위와 같이 다중 상속은 프로그래밍을 복잡하게 만들 수 있으며, 그에 비해 실용성은 그다지 높지 않습니다.

반드시 다중 상속을 사용해야만 풀 수 있는 문제란 거의 없으므로, 될 수 있으면 사용을 자제하는 것이 좋습니다.


연습문제