책 정리/Effective C++ 3rd

항목 22. 데이터 멤버가 선언될 곳은 private 영역임을 명심하자

ocean20 2020. 1. 9. 10:27

1. 데이터멤버를 private으로 선언해야 하는이유

  (1) 문법적 일관성 : 함수로만 데이터 멤버 접근시, 괄호를 쓸지 말지 고민할 필요가없다.

  (2) 세밀한 접근 제어 : 접근 권한을 세밀하게 컨트롤 가능하다.

  (3) 캡슐화 : 데이터 멤버를 캡슐화하면 구현상의 융통성을 전부 누릴 있다.  ex. 내부 데이터 접근시 카운팅, 다른객체에 메시지 전달, 알람 팝업 ..

 

2. public protected

  (1) public : 캡슐화 되지 않았다 = 바꿀수 없다.

    - 만약 데이터멤버를 public으로 선언해놓고 여러 외부 클래스에서 데이터를 사용중이다. 만약 데이터를 삭제할 일이생긴다면 ?... 고칠 것이 너무 많을 것이다.

  (2) protected : 마찬가지로 데이터를 삭제할 일이 생겼다.. 해당 클래스를 상속받는 클래스를 전부다 수정해주어야 것이다.

 

요약정리

  (1) 데이터 멤버는 private 멤버로 선언하자.

    1) 일관성있는 데이터 접근통로(멤버함수로)

    2) 세밀한 접근 제어

    3) 내부 구현의 융통성

 

  (2) protected public보다 많이 '보호' 받는 것이 아니다..