티스토리 뷰

상속 접근 지정자

부모 클래스의 접근 속성

자식 클래스의 접근속성

public (default)

public

public

private

접근 불가

protected

protected

private

public

private

private

접근 불가

protected

private

protected

public

protected

private

접근 불가

protected

protected

public 상속은 기본 속성을 그대로 가져온다.
일반적인 경우 대부분 public 상속을 이용하면 된다.

private 상속은 부모 클래스의 private을 제외한 멤버를 private속성으로 가져온다.
부모 클래스의 멤버를 숨길때 사용한다.

protected 상속은 부모 클래스의 private을 제외한 멤버를 protected 속성으로 가져온다.
부모 클래스의 범용 멤버를 자식 클래스에게만 열어주는 역할을 한다.

사실 최상위 클래스의 메소드가 잘 정의 되어 있다면, public 상속만으로도 충분한 경우가 대부분이다.

public상속이 아닌, private상속과 protected 상속의 경우 코드 가독성을 떨어뜨리고, 복잡도가 증가한다.
멤버의 접근 권한은 작으면 작을 수록 좋은데, 복잡도 증가를 두려워해서 public 상속만 쓰는것은 옳지 않다.

차분한 리팩토링을 통해 최상위 클래스까지 적절한 접근 지정 권한이 설정되어있는 것이 최상이겠지만, 그렇지 못하다면 protected상속이나, private상속을 통해서라도 최소한의 접근 지정 권한만 주도록 하자.

'C++ > General' 카테고리의 다른 글

dllimport, dllexport  (3) 2009.12.29
스택 크기  (1) 2009.12.08
C언어에서의 데이터가 저장되는 영역  (1) 2009.03.27
32bit Windows 메모리 관리  (0) 2009.03.27
참조자와 포인터  (2) 2009.03.19
댓글