Back-end/c,c++

접근 지정자 protected 와 private의 차이점

bogyoi 2024. 1. 5. 00:30

private 상속 : 자식클래스는 부모클래스의 private member을 모두 상속받지만, 이를 접근하기 위해선 부모클래스의 public interface멤버 함수를 통해서만 접근이 가능하다.

class Student: private Person

{ ... } -> 부모 클래스의 모든 멤버는 자식 클래스에서 private 멤버로 변경됨

 

protected 상속 : 자식/자손 일 경우 접근 가능하게 함.(제한적 허용) 구현에서 간편함과 편리함을 위해 자식클래스에만 제한적으로 허용함. 상속관계가 아닌 다른 클래스에서는 private처럼 관리.(직접접근x). 정보 은닉 규칙을 파괴한다는 의견도 있음.

class Student: protected Person

{ ... } -> 부모 클래스의 public 멤버는 자식 클래스에서 protected 멤버로 변경됨.