책 정리/More Exceptional C++
항목 26 : 다중 상속과 샴 쌍둥이 문제 ( 난이도 : 4 )
최익필
2008. 12. 16. 12:59
이번 항목은 한가지 전제를 깔고, 그 문제를 풀어보면서 "앞으로 이런 문제에 부딛쳐 힘에 지칠 때 도움이 될 것이다" 라고 이야기 한다.
이 BaseA 와 BaseB에 있는 ReadBuf 는 다른 일을 하지만 같은 시그너처를 가진 함수 이다. 이 두 클래스를 public 상속을 한 Derived 클래스를 만들고, 각기 다른 ReadBuf가 호출 될 수 있도록 오버라이드 하라.
해설
처음에 내가 생각해 낸 방법은, "상속만 하고 아무것도 하지않는다" 이다. 여기에 문제점은 바로 Derived 에서 ReadBuf 를 호출 할 수 없다는 데에 있다.
처음 생각해 낸 코드
결국 나는 해답을 봤고, 무릎을 탁 쳤다! "wrapper class!" 그렇다 한번 더 감싸서 이름을 변경시키면 된다 다음 코드를 보자.
해결 코드
이런식으로 해결 하면 된다. : )
총평
wrapper 란 개념은 ... 손오공 초사이어인으로 변하게 하는 강함을 보여준다. 그 강함은 "새롭게 꾸며 더 강하게(유용)"사용 하자로 말 할 수 있겠다.