[C++] 3가지 형태의 상속

dd_ddong·2022년 7월 27일
0

c++

목록 보기
25/38

protected

public, private와 같은 접근제어 지시자

클래스 안, 유도클래스 안에서의 접근만 허용

private < protected < public

3가지 형태의 상속

class Derived : public Base

class 선언시 기초클래스 옆에 접근제어 지시자가 붙는다.

각각의 뜻은

private Base : Base의 멤버중 private보다 넓은 범위의 멤버를 private로 바꾼다.
protected Base : Base의 멤버중 protected보다 넓은 범위의 멤버를 protected로 바꾼다.
public Base : Base의 멤버중 public보다 넓은 범위의 멤버를 public로 바꾼다.

보통 public 상속만 사용한다.

IS-A관계 Has-A 관계

Is-A : 무선 전화기는 전화기다. -> 무선 전화기 is a 전화기다.

이런 관계가 성립할 때 상속관계가 성립한다고 한다.
만약 두 클래스가 IS-A관계로 표현되지 않는다면 상속이 적절한 문법이 아닐 수 있다.

Has-A : 경찰이 총을 가지고 있다. -> 경찰이 has a 총을

has-a 관계가 성립할 때도 상속으로 표현할 수 있지만 다른 문법을 사용하는 경우가 많다.
위의 경우 경찰class가 총 객체를 멤버변수로 가지고 있게 함으로써 has-a관계를 표현할 수 있다.

다른 경우에는 상속관계가 성립되지 않는다.

0개의 댓글