일반 객체
p1.display();
p1.setX(15);
읽기 함수와 상태 변경 함수 모두 호출할 수 있다.
함수 뒤의 const는 이 멤버 함수가 x, y 같은 객체 상태를 바꾸지 않겠다는 호출 가능성의 약속이다.
p1.display();
p1.setX(15);
읽기 함수와 상태 변경 함수 모두 호출할 수 있다.
p2.display();
p2.setX(35);
display처럼 const가 붙은 함수만 가능하고 setX는 컴파일 오류가 된다.
void printPoint(const Point& p)
{ p.display(); }
함수 안에서도 p는 const 객체처럼 취급되어 읽기 API만 사용할 수 있다.
getX, getY, display처럼 상태를 읽기만 하는 멤버 함수에는 const를 붙이면 일반 객체와 const 객체 양쪽에서 안전하게 재사용할 수 있다.