Avatar ·

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++; }`时——编译器报错了。为什么?