데이터 멤버는 private 멤버로 선언해라. 이를 통해 제작자는 문법적으로 일관성 있는 데이터 접근 통로를 제공할 수 있고, 필요에 따라서는 세밀한 접근 제어도 가능하며, 클래스의 불변속성을 강화할 수 있을 뿐 아니라, 내부 구현의 융통성도 발휘할 수 있다. protected는 public보다 더 많이 보호받고 있는 것이 아니다. 데이터 멤버는 private 영역에 데이터 멤버는 private 영역에 선언하는 것이 좋다. 이에 따른 이점을 살펴보자. 문법적 일관성 데이터 멤버가 public이라면, 사용자 쪽에서 어떤 객체를 접근할 수 있는 유일한 수단은 멤버 함수이다. 어떤 클래스에 공개 인터페이스가 전부 함수라면 클래스 멤버에 접근하고 싶을 때 괄호를 붙여야 하는지 여부를 일치시키기 쉽다. 함수를 사..