때때로 우리는 함수 선언의 마지막에 존재하는 키워드 'const'를 찾을 수 있습니다. 그래서 그것은 무엇을 의미합니까?
이 하나의 함수를 사용하여 상수로 만들 수 있습니다. 상수 함수의 개념은 함수가 호출되는 객체에서 함수를 수정할 수 없다는 것입니다. 우리 프로그램에서 상수 함수를 사용하는 것이 좋습니다.
상수 함수의 한 가지 예를 살펴보겠습니다.
예시
#include<iostream>
using namespace std;
class MyClass {
int value;
public:
MyClass(int val = 0) {
value = val;
}
int getVal() const {
//value = 10; [This line will generate compile time error as the function is constant]
return value;
}
}; 출력
The value is: 80
이제 우리는 상수 함수와 관련된 또 다른 중요한 점을 보게 될 것입니다. 상수 함수는 위의 예에서 보았듯이 모든 유형의 객체에서 호출할 수 있습니다. 그러나 일부 상수가 아닌 함수는 상수 개체에서 호출할 수 없습니다.
예시
#include<iostream>
using namespace std;
class MyClass {
int value;
public:
MyClass(int val = 0) {
value = val;
}
int getVal(){
return value;
}
};
main() {
const MyClass ob(80);
cout<< "The value is: " << ob.getVal();
} 출력
[Error] passing 'const MyClass' as 'this' argument of 'int MyClass::getVal()' discards qualifiers [-fpermissive]