public, private와 같은 접근제어 지시자
클래스 안, 유도클래스 안에서의 접근만 허용
private < protected < public
class Derived : public Base
class 선언시 기초클래스 옆에 접근제어 지시자가 붙는다.
각각의 뜻은
private Base : Base의 멤버중 private보다 넓은 범위의 멤버를 private로 바꾼다.
protected Base : Base의 멤버중 protected보다 넓은 범위의 멤버를 protected로 바꾼다.
public Base : Base의 멤버중 public보다 넓은 범위의 멤버를 public로 바꾼다.
보통 public 상속만 사용한다.
Is-A : 무선 전화기는 전화기다. -> 무선 전화기 is a 전화기다.
이런 관계가 성립할 때 상속관계가 성립한다고 한다.
만약 두 클래스가 IS-A관계로 표현되지 않는다면 상속이 적절한 문법이 아닐 수 있다.
Has-A : 경찰이 총을 가지고 있다. -> 경찰이 has a 총을
has-a 관계가 성립할 때도 상속으로 표현할 수 있지만 다른 문법을 사용하는 경우가 많다.
위의 경우 경찰class가 총 객체를 멤버변수로 가지고 있게 함으로써 has-a관계를 표현할 수 있다.
다른 경우에는 상속관계가 성립되지 않는다.