1. 程式人生 > >預處理、const、static與sizeof-C++中const有什麽作用(至少說出3個)

預處理、const、static與sizeof-C++中const有什麽作用(至少說出3個)

什麽 需要 char 修改 抽象 ons 時間 數據 amp

1:作用如下:

(1)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;

預處理、const、static與sizeof-C++中const有什麽作用(至少說出3個)