항목3 : 낌새만 보이면 const를 들이대 보자!

1. const를 붙여 선언하면 컴파일러가 사용상의 에러를 잡아내는 데 도움을 준다.
2. const는 어떤 유효범위에 있는 객체에도 붙을 수 있으며, 함수 매개변수 및 반환타입에도 붙을 수 있고, 멤버 함수에도 붙을 수 있다.
3. 컴파일러 쪽에서 보면 비트수준 상수성을 지켜야 하지만, 개념적인(논리적인) 상수성을 사용해서 프로그래밍해야 한다.
4. 상수멤버와 비상수멤버가 기능적으로 똑같이 구현되어 있다면 코드 중복을 피하는 것이 좋은데, 
   이때 static_cast를 사용해 비상수 버전이 상수 버전을 호출 할 수 있게 한다.( 캐스팅이 필요하지만 안전성도 유지하면서 코드 중복을 피할 수 있는 방법 )
   상수 객체를 통해 비상수 함수를 호출하는 것은 옳지 않은 방법이다.(컴파일러 에러 발생)
 
의미적으로 상수를 표현하기보단 const를 통해 상수를 표현하는 것이 안정적인 방법이다.
 
상수 멤버 함수를 사용하는 이유
1. 클래스의 인터페이스를 이해하기 좋게 하기 위함
2. const 키워드를 통해 상수 객체를 사용할 수 있게 하자는 것
   C++ 실행 성능을 높이는 핵심 기법 중 하나가 '객체전달'을 '상수객체에 대한 참조자'로 진행하는 것이다.
   이 기법을 제대로 활용하려면 상수 상태로 전달된 객체를 조작할 수 있는 const 멤버 함수, 즉 상수 멤버 함수가 준비되어       있어야한다.
 

댓글을 작성해보세요.