C 中成員函式後加const

2021-07-02 15:30:44 字數 598 閱讀 3955

注:以下內容來自網路,感謝網友的整理

非靜態成員函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤),表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);唯一的例外是對於 mutable修飾的成員。加了const的成員函式可以被非const物件和const物件呼叫,但不加const的成員函式只能被非const物件調 用。例如:

classa

int geta() const

int geta()

int seta(int a) const  

int seta(int a)  

};a a1;

const a a2;

int t;

t = a1.geta();

t = a1.geta();

t = a2.geta();

t = a2.geta(); //a2是const物件,呼叫非const成員函式產生編譯錯誤。

一般對於不需修改操作的成員函式盡量宣告為const成員函式,以防止產生const物件無法呼叫該成員函式的問題,同時保持邏輯的清晰。

c 函式後加const

函式後加const的三種情況 1 非靜態成員函式後面加const 加到非成員函式或靜態成員後面會產生編譯錯誤 2 表示成員函式隱含傳入的this指標為const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的 因為隱含了對this指標的const引用 唯一的例外是對於mutab...

c 類成員函式後邊加const

class accesslevels int setwriteonly int value private int read only int write only c 在函式後加const的意義 一 我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是 唯讀 函式,...

C 類成員函式後面加const

如果類的成員函式後面加了const關鍵字,說明這個函式是不能改變類中的成員變數的。如果在編寫該函式會修改類中的成員變數,編譯時會出錯,並且也提高了程式的可讀性,當我們看到函式後面有const的話就知道這個函式是不會修改類中資料的。注意 1 只能加在非靜態成員函式後面,加在靜態成員函式和普通函式後面會...