回答
這並不好。
返回臨時引用並不好,因爲在函數外部訪問它導致未定義行爲。
@mkaes:什麼史蒂夫傑索普說。技術上的原因是一個功能結果參考的生命週期延長,實際上是非常昂貴的。該實施必須支持返回對例如函數內部的一個靜態變量,但也必須確保在其他情況下存儲被分配並且在參考消失之後理想地解除分配,優選地以對調用機器代碼透明的方式。我不認爲這在理論上是不可能的。但如果它在技術上是可行的,那麼在實踐中它會非常昂貴...... –
@Steve:同意。我應該仔細閱讀。刪除了錯誤的評論 – mkaes
1是暫時的嗎? 'int x = 1; return x;'會返回一個臨時的,但是'return 1'是不同的,我想。 '1'在哪裏居住?也許所有的文字生活都是一個永久安全的「靜態」空間。例如'const char * foo(){return「我是否暫時?」; }' –
不,你返回一個參考給一個臨時變量 - 這是不是安全的。臨時變量在函數返回時將被銷燬。
- 1. C++通過Const引用並通過Const返回引用
- 2. 通過返回非const引用成員
- 3. C++通過引用返回並通過const引用值返回被複制
- 4. 我可以強制C++ 11 lambda通過引用返回嗎?
- 5. 可以通過mysql_query()返回true嗎?
- 6. 將const引用返回給字符串
- 7. Scala可以通過引用調用嗎?
- 8. 通過賦值給const引用的值返回
- 9. 我可以通過HTML文件返回JSON數據嗎?
- 10. C++:通過引用返回值返回
- 11. 通過JavaScript引用返回?
- 12. 通過類的const引用
- 13. 你可以通過解引用指針來返回一個整數嗎?
- 14. __FILE__可以通過const char *在C++中引用?
- 15. 跳過「返回無」可以嗎?
- 16. 我可以通過字符串引用WPF元素嗎?
- 17. 可以lisp函數返回引用或通過引用接收參數?
- 18. VBScript函數可以返回字典嗎?
- 19. 我可以通過返回構造函數直接返回一個對象嗎?
- 20. 從函數返回之前,可以通過powershell獲得返回值嗎?
- 21. 可以通過typedefed將`auto const * const`轉換爲某種單詞類型嗎?
- 22. 返回,可以通過在陣列JAVA
- 23. 控制器操作可以通過jQuery post返回void嗎?
- 24. 我可以通過C++中的值返回一個數組嗎?
- 25. 我可以通過ssh命令獲得某種返回值嗎?
- 26. 可以通過移動返回一個局部變量嗎?
- 27. 返回const引用的純虛方法
- 28. 從函數返回const引用
- 29. 在C++中返回const引用
- 30. C++單例類返回const引用
你爲什麼要這麼做? –
可能重複[是否更有效地返回一個const引用](http://stackoverflow.com/questions/275795/is-it-more-efficient-to-return-a-const-reference) – iammilind
可能重複[C++傳遞Const引用並通過Const參考返回](http://stackoverflow.com/questions/3216948/c-pass-by-const-reference-and-return-by-const-reference) – stijn