protected

page 297

#protected로 선언된 멤버가 허용하는 접근의 범위
private이나 protected 둘다 클래스의 외부에서는 접근이 불가능한 반면, 클래스 
내부에서는 접근이 가능하다. 하지만 이 클래스가 상속이 되면 이야기가 달라진다.
protected로 선언된 멤버변수는 이를 상속하는 유도 클래스에서 접근이 가능하다.
이것이 private와 protected의 유일한 차이점. 하지만 protected는 private과
public에 비해 그리 많이 사용되지 않는다. 기본적으로 기초 클래스와 이를 상속하는
유도 클래스 사이에서도 '정보은닉'은 지켜지는게 좋다.

#protected 상속의 의미
protected 보다 접근의 범위가 넓은 맴버는 protected로 변경시켜서 상속하겠다.

#컴파일 에러 이유는 base클래스를 protected로 상속했기 때문이다. protected로 
상속했기 때문에 public멤버 변수인 num3는 derived class에서 protected 멤버가 
된다. 그리고 이로 인해서 외부에서는 접근이 불가능한 멤버가 된 것이다.