항목 41 : 특징 없는 값의 집합을 제외하고는 모든 데이터 멤버를 사영으로 하라. Make data members private, except in behaviorless aggregates (C-style structs).
{ 왜냐하면, 데이터 멤버는 변수이기 때문이다. 변수는 무엇인가? 변수는 특정 상태를 기록하기 위한 공간이다. 이게 무슨 상관인가? 특정한 상태를 기록 하는 공간이, 아무에게나 열려 있으면 어찌하겠는가? C++ 로써 예를 들자면, 이런 변수에 값을 변경하기 위해선 로직을 사용 한다. 이 로직들은 함수 형태를 띠는게 자연스럽다. 이런 함수들이 많아 질 수록, 변수는 많은 변화에 노출이 된다. 이때 노출의 정도를 그나마 줄일 수 있는 방법이 private 이다. 만약 public 으로 변수를 유지하게 된다면, 함수에게만 국한된 노출이 누구나 훔쳐 볼 수 있게 되는 것이다. 휴~ 비유를 들어야 직성이 풀리겠는가? 문 잠궈두고, 열쇠를 걸어 두어야 정녕 직성이 풀리겠는가? ㅋㅋ }
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 3. 31. 13:40
최근댓글