在函数体{ }之前加const关键字的作用是什么

1 作用

限定函数的功能,不允许函数改变成员变量的值。

#include <iostream>
 
using namespace std;
class MyClass{
public:
    void setVal(int val) const
    {
        this->val = val;
    }
private:
    int val;
};

这样写,在编译的时候就会提示错误:
error: cannot assign to non-static data member within const member function 'setVal'

2 用法

如果作为单独的函数,const限定符不能够这样使用。

#include <iostream>
 
using namespace std;
 
int getRef() const
{
    return 1;
}
 
int main(int argc, char **argv)
{
    cout << getRef() << endl;
}

testconst.cpp:5:14: error: non-member function cannot have 'const' qualifier
int getRef() const
^~~~~
1 error generated

** 非成员函数不能使用const限定符。需要在类里面使用。**

如果没有加const

如果函数体前没加const,且在定义对象的时候前面加了const,对象在调用这个函数的时候会报错