1. 程式人生 > >c++中const的作用

c++中const的作用

在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;