Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 클래스의 함수 선언에서 마지막 'const'의 의미는 무엇입니까?

<시간/>

때때로 우리는 함수 선언의 마지막에 존재하는 키워드 '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]