information hiding
page 153

제한된 방법으로 접근만 허용을 해야 잘못된 값이 저장되지 않도록 도와야 하고,
또 실수를 했을 때 실수가 쉽게 발견되도록 해야 한다. 

*** 멤버 변수를 private으로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의해서,
안전한 형태로 맴버 변수의 접근을 유도하는 것이 바로 '정보 은닉'이며, 이는 좋은 
클래스가 되기 위한 기본 조건이 된다. 

함수를 통해서 맴버 함수의 접근에 제한을 두었다는 사실에 주목해야 한다. 

Access function : 이들은 멤버 변수를 private 으로 선언하면서 클래스 위부에서의
멤버 변수 접근을 목적으로 정의되는 함수들이다.
const function
page 158

-const는 다음의 내용을 선언하는 것이다
	이 함수 내에서는 "맴버변수"에 저장된 값을 변경하지 않겠다. 
	
	매개변수도 아니고, 지역변수도 아닌, 맴버 변수에 저장된 값을 변경하지 않겠다는
	선언이다. 

이렇게 함수를 const로 선언하면 실수로 자신의 의도와 다르게 맴버 변수의 값을 변경했을 
때 컴파일 에러를 통해서 이를 확인할 수 있다. 
따라서 이는 프로그래머의 실수를 최소화하기 위한 매우 의미 있는 선언이다. 

## const함수 내에서는 const가 아닌 함수의 호출에 제한된다. 
	const로 선언되지 않는 함수는 아무리 맴버 변수에 저장된 값을 변경하지 않더라도,
	변경 할 수 있는 능력을 지는 함수이다. 따라서 이러한 변경이 가능한 함수의 호출을
	아예 허용하지 않는 것이다.
	
## c++에서는 const 참조자를 대상으로 값의 변경 능력을 가진 함수의 호출을 허용하지
않는다.(실제 값의 변경 여부에 상관 없이) 따라서 const참조자를 이용해서는
const 함수만 호출이 가능하다. 

그 만큼 여러분이 작성한 코드의 안전성은 높아질 것이다.
Merge pull request #1 from zirubak/new_const

New const