항목 37 : 상속의 정확한 의미를 이해하자. 재사용을 위해 상속하는 것은 아니지만, 재사용은 필요하다. ( Public inheritance is substitutability. Inherit, not to reuse, but to be reused. )
{ 이 글의 취지는 무엇인가? 상속을 잘못되게 사용하지 말라는 것이다. 상속의 정확한 의미가 무엇일까? 상속은 말 그대로, 이어 받는 것을 말하는데, C++에선 상속해 주는 녀석의 행동을 이어 받는 것이다. 그래서 "is-a" 관계라 든지 "works-like-a" 라든지 상속은 이런 관계일 때만 해야 한다고 한다. is-a 관계 : B is a A 라는 관계인데, B가 A로 봐도 무리가 없다면, 상속을 해도 된다.(물론 상속을 하지 않아도 된다면 하지 않는게 좋다) works-like-a 관계 : B works like a A 라는 관계인데, B가 A 처럼 행동해야 할때, 상속을 해도 된다. 물론~ 하지 않아도 되면, 하지 않는게 좋다. 상속으로 코드의 재사용을 하면 안되는 이유가 무엇인가? 상속은 대..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 3. 2. 20:10
최근댓글