const在類成員函式中的作用

2021-06-01 10:51:03 字數 450 閱讀 4133

程式通常不直接修改類物件。在必須修改類的物件時,應呼叫公有成員函式集來完成。為尊重類物件的常量性,編譯器必須區分不安全與安全的成員函式(即區分試圖修改類物件與不試圖修改類物件的函式)。

類的設計者通過把成員函式宣告為const,以表明它們不修改類物件。例如:     

class screen 

//...

};

只有被宣告為const的成員函式才能被乙個const類物件呼叫。關鍵字const被放在成員函式的參數列和函式體之間。對於在類體之外定義的const成員函式,我們必須在它的定義和宣告中同時指定關鍵字const。例如:

class screen ;

bool screen::isequal(char ch) const

注意,把乙個修改類資料成員的函式宣告為const是非法的。

在類成員函式後面加const

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

const 在類成員函式中的使用說明

在類中宣告成員函式的時候,當不允許成員函式修改到我們的物件的成員變數的時候,常常會在函式的名的尾部加上const 關鍵字修飾。這樣,如果我們無意中在函式內部修改到了資料成員,或者呼叫了其他的非const 函式的時候,編譯器會報錯。例如 include using namespace std clas...

Const 修飾成員函式的作用

const 修飾成員函式的作用.黑月亮 發表於 2005 8 7 16 50 00 const成員函式 任何不會修改資料成員的函式都應該宣告為const型別。如果在編寫const成員函式時,不慎修改了資料成員,或者呼叫了其它非const成員函式,編譯器將指出錯誤,這無疑會提高程式的健壯性。以下程式中...