const 객체는 const 멤버 함수만 호출한다
함수 뒤의 const는 “이 함수가 객체 상태를 바꾸지 않는다”는 호출 가능성의 약속입니다.
일반 객체
p.display();
p.setX(15);
가능
읽기와 변경 함수 모두 호출합니다.
const 객체
cp.display();
cp.setX(35);
차단
변경 함수는 호출할 수 없습니다.
const 참조 매개변수
void print(const Point& p) {
p.display();
}
안전
읽기 API만 사용할 수 있습니다.
호출 대상
읽기 함수
display() const
변경 함수
setX()
일반 객체
호출 가능
호출 가능
const 객체
호출 가능
컴파일 오류
읽기만 하는 멤버 함수에는 const를 붙여야 일반 객체와 const 객체 양쪽에서 안전하게 재사용됩니다.