항목 43. 다중 계승을 바르게 사용하도록 하라
이유
1. 모호함이 생김(항목 26)
2. 다이아몬드 형태의 계승이 이루어 지게 된다.
해결방법
1. 이유 1번을 처리하기 위한 클래스(인터페이스만을 위한)를 만들어 사용한다.
2. 가상 베이스 클래스를 선언한다..( 등등.. 너무 길다)
3. 다중 계승 .. 유혹을 피해야 한다!
개인적인 생각
필자는 다중 상속에 따라 클래스가 거대해 질수록 점점 복잡해짐을 설명하고 있다. 물론 다중상속을 해선 안된다고 말하진 않는다. 단지 복잡하다는것 뿐이다. 복잡함은 가독성을 떨어뜨리고, 코드의 수정이 더불어 복잡해 짐을 나타낸다.
나의 경우, 점점 복잡함에 따라, 피하는것이 아닌, 포기하는 것이다!
이유
1. 모호함이 생김(항목 26)
2. 다이아몬드 형태의 계승이 이루어 지게 된다.
해결방법
1. 이유 1번을 처리하기 위한 클래스(인터페이스만을 위한)를 만들어 사용한다.
2. 가상 베이스 클래스를 선언한다..( 등등.. 너무 길다)
3. 다중 계승 .. 유혹을 피해야 한다!
개인적인 생각
필자는 다중 상속에 따라 클래스가 거대해 질수록 점점 복잡해짐을 설명하고 있다. 물론 다중상속을 해선 안된다고 말하진 않는다. 단지 복잡하다는것 뿐이다. 복잡함은 가독성을 떨어뜨리고, 코드의 수정이 더불어 복잡해 짐을 나타낸다.
나의 경우, 점점 복잡함에 따라, 피하는것이 아닌, 포기하는 것이다!
'책 정리 > Effective C++ 2판' 카테고리의 다른 글
항목 45 ~ 50까지 요약정리 (0) | 2008.05.14 |
---|---|
항목 44. 의미하는 바를 표현하도록 하라; 자신이 표현한 것의 의미를 이해하도록 하라. (0) | 2008.05.14 |
항목 42. private 계승을 바르게 사용하라. (0) | 2008.05.14 |
항목 41. 계승과 템플릿과의 차이점을 이해한다. (0) | 2008.05.14 |
항목 40. 레이어링을 통해 가지고 있는 것과 사용하여 구현된것을 모델링하도록 한다. (0) | 2008.05.12 |
항목 39. 계층도의 아래쪽 클래스로 다운캐스트 하지 않도록 한다. (0) | 2008.05.12 |
항목 38. 계승된 부재 인자값을 재정의하지 않도록 한다. (0) | 2008.05.12 |
항목 37. 계승된 비가상 함수를 재정의하지 않도록 한다. (2) | 2008.05.12 |
항목 36. 인터페이스 계승과 구현의 차이점을 이해해라 (0) | 2008.05.12 |
항목 35. public 계승이 isa를 모델링하도록 하라. (0) | 2008.05.11 |
최근댓글