다중 상속이란, 

둘 이상의 클래스를 동시에 상속하는 것을 말한다. 그리고 C++은 다중상속을 지원하는 객체지향 언어이다. 그런데 다중상속은 제법 논란이 되는 문법이다.


실제로 다중 상속으로만 해결이 가능한 문제는 존재하지 않으니, 굳이 다중 상속을 하기 위해 노력할 필요는 없다. 하지만 누군가는 다중 상속을 예외적으로, 매우 제한적으로 적용할 수도 있는 일이므로, 이에 대한 이해를 위해서라도 다중상속을 공부할 필요는 있다. 



다중 상속의 기본방법



세미콤마를 이용해서 상속의 대상이 되는 클래스를 구분해서 명시할 수 있다. 

그리고 기초클래스를 상속하는 형태는 각각 별도로 지정이 가능하다. 






다중 상속의 모호성(Ambiguous)


  - 다중 상속의 대상이 되는 두 기초 클래스에 동일한 이름의 멤버가 존재하는 경우에는 문제가 발생할 수 있다. 이러한 경우에는 유도 클래스 내에서 멤버의 이름만으로 접근이 불가능하기 때문이다. 

만약에 이름만으로 접근하려 든다면 컴파일러는 다음과 같이 불만을 토로할 것이다.


"도대체 어느 클래스에 선언된 멤버에 접근을 하라는 거야?"



이 문제를 해결하려면 위에처럼 직접적으로 어느 클래스에 정의된 함수인지를 명시해야 한다. 

즉, 다중 상속을 할 때 같은 이름의 함수가 있다면, 그 함수를 호출을 할때에는 

어느 클래스에 정의된 함수의 호출을 원하는지 명시해야 한다. 

Posted by scii
: