C++中const的作用(至少要說出3個)

在C/C++開發中經常會用到const,這個修飾符。今天就討論一下它的作用。

(1) const用於定義常量:const定義的常量編譯器可以對其進行數據靜態類型安全檢查。這個是開發中經常用到的const的最基本的作用。

(2) const修飾函數形式參數:當輸入參數爲用戶自定義類型和抽象數據類型的時候(就是自己定義的類),應該將“值傳遞”改爲“const &傳遞”,可以提高效率。

比較下面兩段代碼:

void fun(A a);

void fun(A const &a);

第一個函數效率低。函數體內產生A類型的臨時對象用於複製參數a,臨時對象的構造、複製、析構過程都將消耗時間。而第二個函數提高了效率。用“引用傳遞”不需要產生臨時對象,節省了臨時對象的構造、複製、析構過程消耗的時間。但光用引用有可能改變a,所以加上const。

(3) const 修飾函數的返回值:如給“指針傳遞”的函數返回值加const,則返回值不能被直接修改,且該返回值只能被賦值給加const修飾的同類型指針。例如:

const char *GetChar(void){};

char *ch = GetChar(); //錯誤

const char *ch = GetChar(); //正確

(4)const修飾類的成員函數和(函數定義體):任何不會修改數據成員的函數都應用const修飾,這樣,當不小心修改了數據成員或調用了非const成員函數時,編譯器都會報錯。

const修飾類的成員函數形式爲:

int GetCount(void) const;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章