Const 成员函数

类的成员函数可以声明为 const,它告诉编译器和将来的读者这个函数不会修改对象:

class MyClass
{
private:
    int myInt_;
public:
    int myInt() const { return myInt_; }
    void setMyInt(int myInt) { myInt_ = myInt; }
};

const 成员函数中,this 指针实际上是 const MyClass *而不是 MyClass *。这意味着你无法更改函数内的任何成员变量; 编译器会发出警告。所以 setMyInt 不能宣告 const

在可能的情况下,你几乎应该始终将成员函数标记为 const。在 const MyClass 上只能调用 const 成员函数。

static 方法不能声明为 const。这是因为静态方法属于一个类而不是在对象上调用; 因此它永远不能修改对象的内部变量。因此,将 static 方法声明为 const 将是多余的。