const 함수

Programming/C++ 2012. 5. 8. 03:01 |

int GetX(void) const;

int GetY(void) cosnt;

void Show(void) cosnt;


이 const가 의미하는 바는 "이 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다!" 라는 뜻이된다.


매개변수도 아니고, 지역변수도 아닌 멤버변수에 저장된 값을 변경하지 않겠다는 선언이다. 따라서 const 선언이 추가된 멤버함수 내에서 멤버변수의 값을 변경하는 코드가 삽입되면, 컴파일 에러가 발생한다. 


이렇게 함수는 cosnt로 선언하면, 실수로 자신의 의도와 다르게 멤버변수의 값을 변경했을 때, 컴파일 에러를 통해서 이를 확일할 수 있다. 



const 함수의 또 다른 특징 



const 함수 내에서는 const가 아닌 함수의 호출이 제한된다!!!


const로 선언되지 않은 함수는 아무리 멤버변수에 저장된 값을 변경하지 않더라도, 변경할 수 있는 능력을 지닌 함수이다. 따라서 이러한 변경이 가능한 함수의 호출을 아예 허용하지 않는 것이다.




InitNum 함수의 매개변수 ea는 'const 참조자'이다. 그런데 이를 대상으로 GetNum함수를 호출하면 컴파일 에러가 발생한다. 이는 GetNum이 const 함수가 아니기 때문이다.

const 참조자를 이용해서는 const 함수만 호출이 가능하다.

'Programming > C++' 카테고리의 다른 글

생성자(Constructor)  (0) 2012.05.12
캡슐화  (0) 2012.05.12
정보은닉(Information Hiding)  (0) 2012.05.03
Message Passing  (0) 2012.05.02
클래스 기반의 두 가지 객체생성 방법  (0) 2012.05.02
Posted by scii
: