Work/개발 노트
C++에서의 다중상속
★용호★
2012. 7. 20. 11:56
2012년 7월 20일
그래서 간단하게 테스트해본 결과 다중상속이 허용된다. 하지만 다중상속에는 의도치 않은 여러 문제가 발생할 수가 있는데 예를 들면
class A }; class B: public A class Test: public A, public B Test() {} |
이 경우에 Test클래스가 상속받는 A, B 클래스 중에 B클래스가 A클래스를 상속받고 있다. 그럼 Test클래스는 결과적으로 A클래스를 두번 상속 받게 되는 것이다. 그럼 A클래스의 멤버함수 a가 중복이 되는 문제가 발생한다. 그러므로 컴파일 에러!
C#에서의 인터페이스와 같이 추상 클래스를 상속 받을 때는 문제가 없다. 현재 분석중인 소스에서도 순수가상함수들로 이루어진 추상클래스들만 다중 상속을 받고 있다.
class A virtual testA() = 0; }; class B: public A class Test: public A, public B Test() {} |
이런식의 상속은 문제 없음...