ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Effective C++...37
    일지 2022. 8. 8. 07:47

    private 상속은 심사숙고해서 구사하자

    private 상속의 의미

    private 상속은 is-implemented-in-terms-of를 의미하며 컴파일러는 상속 관계가 private이면 파생 클래스 객체를 기본 클래스 객체로 변환하지 않는다.

     

     

    ※ 기본적으로 private 상속은 설계 중에는 아무 의미가 없으며 구현 중에만 의미를 가진다.

     

    객체 합성의 장점

    is-implemented-in-terms-of는 객체 합성의 의미 이기도 한데, 이 두 구현 중 가능하면 객체 합성을 사용하는 게 좋다.

    객체 합성의 장점은 다음과 같다.

    1. 파생은 가능하게 하되, 파생 클래스에서 가상 함수를 재정의 할 수 없도록 할 수 있다.
    2. 컴파일 의존성을 최소화할 수 있다.

     

    ※ 빈 클래스를 상속받는 특수한 상황이 아니면 객체 합성을 사용하는 편이 일반적으로 낫다.

     

    댓글

Designed by Tistory.