함수가 클래스의 멤버함수인 경우,
const키워드를 뒤에 삽입가능한데,
이경우 함수에 속해있는 객체의 멤버변수를 변경할 수 없다.
#include <iostream>
using std::endl;
using std::cout;
class Counter
{
int val;
public:
Counter()
{
val = 0;
}
void Print() const
{
val = 1; //Error
ocut << val << endl;
}
};
int main()
{
Counter cnt;
cnt.Print();
return 0;
}
$ gcc.sh 4-6-1.cpp
4-6-1.cpp: In member function ‘void Counter::Print() const’:
4-6-1.cpp:16: error: assignment of data-member ‘Counter::val’ in read-only structure
4-6-1.cpp:17: error: ‘ocut’ was not declared in this scope
'Language > C++' 카테고리의 다른 글
C컴파일러와 달리 C++컴파일러에서 함수 오버로딩이 가능한 이유? (0) | 2014.11.24 |
---|---|
[c++] 전역함수에 대한 friend선언 (0) | 2014.06.20 |
[c++] 레퍼런스, reference, int &ref = val; 레퍼런스 변수, 별명! (0) | 2014.06.17 |
포인터의 용도 / 동적할당메모리 (0) | 2013.04.29 |
<input> cin(), get(), getline() 함수 차이. (0) | 2011.04.03 |