const 객체와 const 객체의 특성


객체도 상수화할 수 있다.

const Simple sim(2);


그리고 이렇게 객체에 const 선언이 붙게 되면, 이객체를 대상으로는 const 멤버함수만 호출이 가능하다. 이는 객체의 const 선언이 다음의 의미를 갖기 때문이다.

"이 객체의 데이터 변경을 허용하지 않겠다!"


물론 const로 선언되지 않은 함수 중에도 데이터를 변경하지 않는 함수가 있을 수 있다. 하지만 변경시킬 능력이 있는 함수는 아예 호출을 허용하지 않는 것이다.




멤버변수에 저장된 값을 수정하지 않는 함수는 가급적 const로 선언해서, const객체에서도 호출이 가능하도록 할 필요가 있다. const 선언은 많을수록 좋다.






const와 함수 오버로딩


: 함수의 오버로딩이 성립하려면 매개변수의 수나 자료형이 달라야 한다. 하지만 다음과 같이 const의 선언유무도 함수 오버로딩의 조건에 해당이 된다.


void SimpleFunc() {...}

void SimpleFunc() const {...}




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

C++에서의 static  (0) 2012.05.30
friend  (0) 2012.05.26
복사 생성자의 호출시점  (0) 2012.05.25
깊은 복사 & 얕은 복사  (0) 2012.05.24
explicit  (0) 2012.05.23
Posted by scii
: