c 類成員函式後邊加const

2021-07-07 01:29:39 字數 819 閱讀 3681

class accesslevels

int setwriteonly( int value )

private:

int read_only;

int write_only;

c++ 在函式後加const的意義:

一、我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是"唯讀"函式,而有一些函式要修改類資料成員的值。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。其實,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值,則編譯器按錯誤處理。 const成員函式和const物件 實際上,const成員函式還有另外一項作用,即常量物件相關。對於內建的資料型別,我們可以定義它們的常量,使用者自定義的類也一樣,可以定義它們的常量物件。

二、通過把類成員函式宣告為const   以表明它們不修改類物件。

任何不會修改資料成員的函式都應該宣告為const型別。如果在編寫const成員函式時,不慎修改了資料成員,或者呼叫了其它非const成員函式,編譯器將指出錯誤,這樣做的好處是提高程式了的健壯性。 三、

1、非靜態成員函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤)

2、表示成員函式隱含傳入的this指標為const指標,決定了在該成員函式中,

任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);

3、唯一的例外是對於mutable修飾的成員。

加了const的成員函式可以被非const物件和const物件呼叫

但不加const的成員函式只能被非const物件呼叫

C 類成員函式後面加const

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

在類成員函式後面加const

在看開源 時,經常會看到在類的成員函式後面加const,之前了沒有太關注過,近來閒來無事,就想起這件事,網上查了一下,大概明白了是怎麼回事,這裡引用csdn愽文裡的段話 編譯器會自動給每乙個函式加乙個this指標。在乙個類的函式後面加上const後,就表明這個函式是不能改變類的成員變數的 加了mut...

C 中成員函式後加const

注 以下內容來自網路,感謝的整理 非靜態成員函式後面加const 加到非成員函式或靜態成員後面會產生編譯錯誤 表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的 因為隱含了對this指標的const引用 唯一的例外是對於 mutab...