항목 21. 가능한 const를 이용한다.

이유
1. 여러 상황속에서 내가 정의한 데이터가 아무렇게나 변경 될수 있다.
- 포인터, 레퍼런스로써 가리킨 데이터가 private인경우에도 변경되는 경우와 마찬가지다.

2. operator 의 반환값이 const 가 아닐경우 a * b = c 와 같은 경우 무슨일은 한거같은 느낌만 들기 때문이다.(실험해 보면 재미잇다)

해결 방법
1. const 키워드를 넣을수 있는 곳에는 주저말고 넣자.
2. 포인터로 값을 전달하게 될때는 이중 const로 묶어 놓자.

참조 사항
1. 내부 함수가 레퍼런스로 값을 반환해줄경우 private에 있는것도 접근이 가능해진다.
2. 1번의 사항은 포인터도 마찬가지다. 그러므로 이럴때 const를 사용 하면 좋다. 더 좋은것은 설계를 잘하여, 이런 상황이 없도록 하는게 더 좋다.

3. 문자열이나 배열에 대해서는 각별히 [] 연산자에 대한 경우도 생각해 두어야 한다.
4. 상수성을 버릴 필요가 있을때는 그 상수가 쓰여지는 범위동안 값이 변하지 않는다는 보장이 따른다.

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요