-
Effective C++...21일지 2022. 6. 23. 07:38
데이터 멤버가 선언될 곳은 private 영역임을 명심하자
멤버 변수를 private으로 사용할 때의 장점
세 가지의 장점이 존재한다.
- 문법적 일관성 어떤 건 멤버 변수를 직접 호출하고 어떤 건 함수를 사용하는 대신 일괄적으로 함수를 사용하도록 할 수 있다.
- 접근성의 정교한 제어 가능 읽기 전용, 읽기 쓰기 모두 가능, 쓰기 전용 등으로 접근 권한을 제어할 수 있다.
- 캡슐화를 통한 코드 제어 다른 코드에 영향을 주지 않고 내부 구조를 수정할 수 있다.
멤버 변수는 protected도 안 된다
public과 달리 protected는 조금 더 안전하다고 생각하지만 해당 변수를 삭제하는 상황을 가정하면 그렇지도 않다는 것을 알 수 있다.
- public 변수를 삭제하면 해당 변수를 사용하는 모든 코드에 영향을 주게 될 것이다.
- protected 변수를 삭제하면 해당 클래스를 상속받는 모든 클래스에 영향을 주게 될 것이다.
즉, 어떤 경우라도 피해를 파악하고 대응하기 쉽지 않다.
※ 캡슐화 관점에서 의미 있는 접근 수준은 private과 private이 아닌 나머지로 구분될 것이다.