const 멤버 함수는 멤버 함수 내에서 객체의 멤버 변수를 변경하지 않는다는 것을 보장하는 함수입니다. 따라서 const 객체는 const 멤버 함수만 호출할 수 있습니다. const 멤버 함수에서 멤버 변수를 변경하면 컴파일 에러입니다. 사실 자신의 멤버를 변경하지 않는 멤버 함수는 모두 const 멤버 함수여야만 합니다.
function의 맨 뒤에 const가 붙으면 그 function은 const function이고,
변수 앞에 const가 붙으며 그 변수가 const이다.
case 1.
에러 메세지:
main.cpp: In function ‘int main(int, char**)’:
main.cpp:44:14: error: passing ‘const Point’ as ‘this’ argument of ‘void Point::setX(int)’ discards qualifiers [-fpermissive]
p1.setX(5);
^
main.cpp:46:14: error: passing ‘const Point’ as ‘this’ argument of ‘void Point::setY(int)’ discards qualifiers [-fpermissive]
p1.setY(5);
^
case 2.
에러 메세지:
main.cpp: In member function ‘void Point::setPoint(Point)’:
main.cpp:30:23: error: passing ‘const Point’ as ‘this’ argument of ‘void Point::setX(int)’ discards qualifiers [-fpermissive]
_point.setX(10); // will error
'소프트웨어 > c++' 카테고리의 다른 글
함수, 함수 포인터, 함수 객체를 이용한 정수 출력 / print int type using function, function pointer, function element (0) | 2015.10.09 |
---|---|
flood fill을 구현해보았습니다. - 다른 분의 코드에서 확장 (0) | 2015.03.03 |
C++에서 클래스를 지역변수로 만들면서 constructor호출하기 (0) | 2015.02.25 |
비트연산 테스트 코드 (0) | 2015.02.24 |
좌선 알고리즘이란 (0) | 2015.02.17 |