데이터 멤버는 private(effective c++ 22)
2015. 8. 25. 16:37ㆍ프로그래밍/Effective C++
728x90
728x90
Public이면 왜 안 되는가? WHY?
문법적 일관성 – 항목 18 참조
데이터 멤버가 public이 아니라면, 외부에서 접근할 수 있는 유일한 수단은 멤버 함수
함수를 사용하면 데이터 멤버의 접근성에 대해 정교한 제어를 할 수 있다.
캡슐화(encapsulation)
정리
데이터 멤버는 private 멤버로 선언하자.
- 문법적으로 일관성 있는 데이터 접근 통로를 제공할 수 있다.
- 세밀한 접근 제어도 가능
- 클래스의 불변속성을 강화
- 내부 구현의 융통성 발휘
protected는 public보다 더 많이 ‘보호’ 받고 있는 것이 절대로 아니다.
728x90
반응형
'프로그래밍 > Effective C++' 카테고리의 다른 글
예외를 던지지않는 swap(effective c++ 25) (0) | 2015.08.25 |
---|---|
타입변환이 모든 매개변수에 적용된다면? 그 함수는 비멤버로(effective c++ 24) (0) | 2015.08.25 |
멤버 함수보단 비멤버 비프렌드 함수를!(effective c++ 23) (0) | 2015.08.25 |
함수에서 객체 반환시 참조로 X(effective c++ 21) (0) | 2015.08.23 |
클래스 설계는 타입 설계와 같이 보자(effective c++ 19) (0) | 2015.08.20 |
인터페이스 설계방법. 제대로는 쉽게, 엉터리론 어렵게(effective c++ 18) (0) | 2015.08.20 |
new로 생성한 객체를 스마트포인터에 저장하는 코드는 별도의 한 문장(effective c++ 17) (0) | 2015.08.20 |