c 在類函式前 後加const的意義

2021-10-24 08:32:41 字數 519 閱讀 5904

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

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

2、表示成員函式隱含傳入的this指標為const指標,決定了在該成員函式中, 任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);

3、唯一的例外是對於mutable修飾的成員。加了const的成員函式可以被非const物件和const物件呼叫,但不加const的成員函式只能被非const物件呼叫

參考

C 函式前後加const的區別

1 函式前後const 函式前const 普通函式或成員函式 非靜態成員函式 前均可加const修飾,表示函式的返回值為const,不可修改。格式為 const returntype functionname param list 函式後加const 只有類的非靜態成員函式後可以加const修飾,表...

c 在類函式後加const的意義

我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是 唯讀 函式,而有一些函式要修改類資料成員的值。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。其實,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值...

在類成員函式後面加const

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