1. 程式人生 > >C++ const 修飾成員函式

C++ const 修飾成員函式

2 用const修飾函式的返回值如果給以“指標傳遞”方式的函式返回值加const修飾,那麼函式返回值(即指標)的內容不能被修改,該返回值只能被賦給加const 修飾的同類型指標。例如函式const char *GetString(void);如下語句將出現編譯錯誤:char *str = GetString();正確的用法是constchar *str =GetString();如果函式返回值採用“值傳遞方式”,由於函式會把返回值複製到外部臨時的儲存單元中,加const修飾沒有任何價值。例如不要把函式int GetInt(void) 寫成const int GetInt(void)。同理不要把函式AGetA(void) 寫成const A GetA(void),其中A 為使用者自定義的資料型別。如果返回值不是內部資料型別,將函式AGetA(void) 改寫為const A &GetA(void)的確能提高效率。但此時千萬千萬要小心,一定要搞清楚函式究竟是想返回一個物件的“拷貝”還是僅返回“別名”就可以了,否則程式會出錯。函式返回值採用“引用傳遞”的場合並不多,這種方式一般只出現在類的賦值函式中,目的是為了實現鏈式表達。