1. 데이터멤버를 private으로 선언해야 하는이유
(1) 문법적 일관성 : 함수로만 데이터 멤버 접근시, 괄호를 쓸지 말지 고민할 필요가없다.
(2) 세밀한 접근 제어 : 접근 권한을 세밀하게 컨트롤 가능하다.
(3) 캡슐화 : 데이터 멤버를 캡슐화하면 구현상의 융통성을 전부 누릴 수 있다. ex. 내부 데이터 접근시 카운팅, 다른객체에 메시지 전달, 알람 팝업 등..
2. public과 protected
(1) public : 캡슐화 되지 않았다 = 바꿀수 없다.
- 만약 데이터멤버를 public으로 선언해놓고 여러 외부 클래스에서 이 데이터를 사용중이다. 만약 이 데이터를 삭제할 일이생긴다면 ?... 고칠 것이 너무 많을 것이다.
(2) protected : 마찬가지로 데이터를 삭제할 일이 생겼다.. 해당 클래스를 상속받는 클래스를 전부다 수정해주어야 할 것이다.
요약정리
(1) 데이터 멤버는 private 멤버로 선언하자.
1) 일관성있는 데이터 접근통로(멤버함수로)
2) 세밀한 접근 제어
3) 내부 구현의 융통성
(2) protected는 public보다 더 많이 '보호' 받는 것이 아니다..
'책 정리 > Effective C++ 3rd' 카테고리의 다른 글
항목 24. 타입 변환이 모든 매개변수에 대해 적용되어야 한다면 비멤버 함수를 선언하자 (0) | 2020.01.10 |
---|---|
항목 23. 멤버함수 보다는 비멤버 비프렌드 함수와 더 가까워지자 (0) | 2020.01.09 |
항목 21. 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자 (0) | 2020.01.08 |
항목 20. '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달' 방식을 택하는 편이 대개 낫다 (0) | 2020.01.08 |
항목 19. 클래스 설계는 타입 설계와 똑같이 취급하자 (0) | 2020.01.07 |
댓글