const 를 쓸 껀덕지가 있으며 const를 무조건 붙여두는게 좋다는 이야기 이다.  일단 나쁜 것 부터 이야기 하고 싶다. 왜냐하면 나는 "Effective C++ & Exceptional C++"의 영향으로 const를 붙이도록 무척 노력했고, 코드는 점점 const 를 써야지만 컴파일이 되야 되는 지경에 까지 이르게 되었기 때문이다.

특히 멤버 함수에 const를 붙여주면, 그 함수 내부에서 호출되는 멤버함수들 역시 const를 보장해 줘야 컴파일이 된다. 이 문법적 기능 때문에, 바이러스 처럼 const 는 퍼지게 된다. 이렇게 될 때 프로그래머가 느끼는 피곤함은 나에게 있어서 나쁘다고 이야기 하고 싶다.

뭐, 그렇다고 해서 const를 더 적게 붙이거나 그러진 않는다. ; ) 어디까지나 사람으로써의 불편이다.

이제 const 의 장점을 이야기 해보자. const는 "불변" 이라는 막강한 기능이 있어, 컴파일 타임, 런타임에 변수가 변하지 않음을 보장해 준다.(물론 casting 하면 깨진다. 그래서 수 많은 책에서 casting 하지 말라고 한다.) 이것은 코딩할 떄, 프로그래머의 실수를 무척이나 많이 줄여주고, 더 나아가 프로르램의 디자인을 더욱 견고하게 만들어 준다.

위의 말이 거짓말이라고 생각 한다면, 일단 멤버 함수에 const를 붙여 보자. 그러면, 자신도 모른 사이에 더 코드가 잘 보이게 되는 효과를 볼 수 있을 것이다. 그러고 보니 const 를 붙이면서 코딩을 하게 되면, 자신도 모른 사이에 "함수 단위 리팩토링"이 되더라... 왜냐하면, "변하지 않음"과 "변함" 이라는 구분으로 함수가 쪼개지기 때문이다. : )


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기