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,对象在调用这个函数的时候会报错