const Member Function

const 객체는 const 멤버 함수만 호출한다

함수 뒤의 const는 이 멤버 함수가 x, y 같은 객체 상태를 바꾸지 않겠다는 호출 가능성의 약속이다.

Point p1

일반 객체

p1.display();
p1.setX(15);

읽기 함수와 상태 변경 함수 모두 호출할 수 있다.

const Point p2

const 객체

p2.display();
p2.setX(35);

display처럼 const가 붙은 함수만 가능하고 setX는 컴파일 오류가 된다.

const Point&

읽기 전용 매개변수

void printPoint(const Point& p)
{ p.display(); }

함수 안에서도 p는 const 객체처럼 취급되어 읽기 API만 사용할 수 있다.

const 멤버 계약

getX, getY, display처럼 상태를 읽기만 하는 멤버 함수에는 const를 붙이면 일반 객체와 const 객체 양쪽에서 안전하게 재사용할 수 있다.