Header

  1. View current page

    이펙티브 C++

Profile_image?t=1235553298&type=big
2

38-1. is a 와 is implemented in terms of 의 차이

 effective c++, 항목36

 

 

 is implemented in terms of는 is a와 일견 비슷해 보이지만 has a에 가깝고 구현역시 has a처럼 객체 합성을 통해 구현하는게 옳다.

 

 예를들어 std:list를 사용해 단순한 set을 만든다고 할때 std:list에서 상속받아 구현하는건 좋지 않은데

그건 std:list에서 참인(통하는) 사실이 set에서는 통하지 않기 때문이다.(즉 is a가 아님) 예로서 list에서는 중복 원소를 가실수 있지만

set에서는 중복 원소를 가지지 않는다.

 

 has a는 응용영역(application domain)에 속하며 예를들어 사람, 비디오 프레임, 이동수단 등 에 속하며
is implemented in terms of 는 구현영역에 속한다(응용영역에 속하지 않는 나머지 것들 버퍼, 뮤텍스 탐색트리 등)

History

Last edited on 02/28/2008 15:23 by evax

Comments (0)

You must log in to leave a comment. Please sign in.