C++中类成员函数声明末尾的const是什么意思?
大家好!我在学习完Python和Java后开始学习C++,遇到了一个不理解的语法。在别人的代码中,我经常看到类成员函数声明后面有关键字`const`。例如:
```cpp
class MyClass {
public:
int getValue() const; // 就是这个末尾的const
void setValue(int v);
};
```
我知道`const`放在变量前面表示变量不可修改。但`const`放在参数列表*后面*是什么意思?我试着不写它——编译器没有报错。那它有什么用?它会影响我调用函数的方式吗?它可以用于任何函数吗?还是只用于getter?
我写了一个简单的类:
```cpp
class Counter {
public:
Counter() : count(0) {}
int getCount() const { return count; } // 正常工作
void increment() { count++; } // 正常工作
private:
int count;
};
```
但当我尝试写`void increment() const { count++; }`时——编译器报错了。为什么?