본문 바로가기

프로그램언어/Effective C++

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

만약 멤버 변수들이 일부는 public이고 어떤것은 인터페이스 안에 감추어져 있는 private 라면 인터페이스 사용자는 멤버에 접근하고 싶을 때 어떤 변수는

인터페이스를 이용해 접근하고 어떤것은 직접 접근해야 합니다. 이러한 모습은 일관성에도 어긋나지만 인터페이스 구현상의 융통성을 누릴수도 없게 됩니다.

private 로 선언하여 인터페이스 뒤로 멤버들을 감추게 된다면 멤버를 읽거나 쓸 때 다른 객체에 알림 메세지를 보낸다던가 클래스의 불변속성을 검증하고 사전조건, 사후조건을

검증한다거나, 스레딩 환경에서 동기화를 거는 등의 융통성을 누릴 수 있습니다.