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 將是多餘的。