20200402_引用作爲返回值
一、相關術語
- 引用
引用可以作爲函數返回,但不建議這樣做。
二、筆試題
1、什麼情況下需要使用“常引用”?
答:既要提高程序效率,又要保護傳遞給函數的數據不被修改。
常引用聲明格式:const 類型標識符 &變量名=目標變量名。
舉例:const int &iMyWeight = 67
2、將引用作爲函數返回值的格式、好處和需要遵守的規則?
答:格式:類型標識符& 函數名(形參列表){ 函數體 }
好處:返回值不會在內存中產生副本。
規則:a、不能返回局部變量的引用。
b、不能返回函數內部new分配的內存的引用。參照《Effective C++》第三版第21條。
c、可以返回類成員的引用,最好用const。
d、流操作符(<<和>>)重載返回值申明爲引用的作用:
◆ 流操作符<<和>>常常被連續使用,如cout<<“abc”<<endl;因此這兩操作符的返回值應該是一個仍然支持這兩操作符的流引用。(不太懂,先記下)
e、加減乘除這四個運算符不能返回引用。主要原因爲這四個操作符沒有side effect,它們必須構造一個對象作爲返回值。
3、“引用”與多態之間的關係?
答:和指針類似,基類的引用可以指向派生類的實例。
知識擴展
多閱讀《Effective C++》。
本文歸類
建議歸類到【C++】。
明日計劃
1、引用與指針的區別。
2、什麼時候需要引用。
3、結構與聯合有何區別?
參考文獻:
《C++筆試面試寶典2011版.docx》
《C++ Primer Plus》,第255頁,第8章,函數探幽,8.2節,引用變量。
《Effective C++》第三版,條款21,Don’t try to return a reference when you mustreturn an object.
深入剖析多態
今日收藏:
無。