C ++类的函数声明中的'const'的最后含义是什么?

有时我们可以在函数声明的最后找到关键字'const'。那是什么意思呢?

使用这一功能可以设为常数。常量函数的思想是,不能从调用它们的对象中修改函数。建议在我们的程序中使用常量函数。

让我们看一个常量函数的例子。

示例

#include<iostream>
using namespace std;
class MyClass {
   int value;
   public:
      MyClass(int val = 0) {
         value = val;
      }
      int getVal() const {
         //值= 10; [此行将在函数不变时生成编译时错误]
         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]