c++ 에서 함수명 뒤에 const 사용의 의미는?

i_wish_awk_sed_perl의 이미지

c++을 공부하고 있습니다. 함수에 다음과 같이 정의 되어 있다면 이것은 어떤 의미를 가지는지요? 책을 따라가면서 보고 있는데...갑자기 튀어 나오는데...설명이 제대로 되어 있지 않습니다.

double magval() const { return mag; }
myueho의 이미지

맴버함수에서 사용하며, 모든 맴버 변수를 const처럼 사용합니다.

즉, 이 함수에서는 맴버변수들을 수정하지 않겠다는 표시입니다.

익명 사용자의 이미지

class A {

int value;

public:

int foo() { return value; }

};

const A a;
a.foo(); // <-- Compile Error

int foo() const { return value; } // OK