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() {} |
이런식의 상속은 문제 없음...
'Work > 개발 노트' 카테고리의 다른 글
[어스토니시아VS] 드디어 게임 개발자로서의 첫 오픈! (0) | 2014.04.26 |
---|---|
SQL 2008에서 내보내기, 가져오기 문제 (0) | 2012.08.28 |
리눅스 환경에서 용량 이상 현상이 발생했을 때 처리 (0) | 2012.07.05 |
[Eclipse] 이클립스 플러그인 제거/변경 By 용호 (0) | 2011.07.30 |
[Study] Effective C++ 문제 제출 후 문제 풀이 (0) | 2011.07.22 |
댓글