다음과 같은 코드를 보자.
const Stock land = Stock("Samsung");
land.Show();
여기서 show는 land의 멤버 함수임을 알 수 있다. '어? 그런데 클래스 객체 선언 앞에 const가 붙었다. 그럼 객체를 변경 하면 안되겠는데..? 어라 근데 show() 함수에 변수를 변경시키는 구문이 있는지 확신을 못 하겠잖아?'
이에 대한 해결책으로 'const 멤버 함수'가 나왔다. 방법은 단순히 멤버 함수 오른쪽에 const를 붙이면 된다. 이는 클래스 멤버 함수만 가능하다.
void Show() const; // 함수 선언.
void Stock::Show() const; // 함수 머리.
특징은,
① 이 안에서는 어떤 멤버 변수도 변경이 불가능하다.
② 위처럼 const 객체를 선언했을 때 호출이 가능하다. (객체. 으로 인텔리센스 기능 사용하면 const 멤버 함수만 목록에 뜬다 ㄷㄷㄷㄷ!!)
③ const 멤버 함수 외에 일반 함수는 호출이 불가능하다.