任何人都可以用一些例子來解釋什麼時候最好通過引用來調用函數,什麼時候最好通過地址來調用?何時通過引用傳遞函數參數以及何時通過地址?
3
A
回答
2
儘可能將參數傳遞給使用引用的函數。 通過引用傳遞參數可以消除它們爲NULL的機會。 如果您希望可以將NULL值傳遞給函數,則使用指針。
+0
還有boost :: optional,它允許傳遞一個無效值,而不必使用指針或一個表示Empty的特殊值。 – efotinis 2008-09-27 15:35:28
3
這已經被討論過了。見Pointer vs. Reference。
2
一個很好的約定是:
- 通行證由指針對象每當他們可以被操縱(副作用或作爲輸出)通過的功能。
- 通過所有其他對象由const引用。
這使調用者非常清楚,文檔最少,性能成本最低,哪些參數是常量或不是。
您也可以將其應用於基元類型,但是您是否需要將const引用用於非輸出參數值得商榷,因爲它們顯然是按值傳遞的,並且不能作爲函數以任何方式(對於直接類型 - 當然不是指針/引用)。
相關問題
- 1. 當我使用__call時,如何通過引用傳遞參數
- 2. 如何通過form_for傳遞參數時涉及多個模型
- 3. 「地址0x7f的出界」通過函數傳遞參數
- 4. 通過引用傳遞數組參數
- 5. 如何在函數中使用模板,同時通過引用傳遞參數
- 6. 如何指示參數通過引用傳遞給函數
- 7. 通過引用傳遞參數時,可以放置「&」符號嗎?
- 8. C++:通過模板傳遞參數Vs通過函數參數
- 9. 如何通過引用傳遞參考變量的地址?
- 10. 通過構造函數傳遞什麼以及通過接口傳遞什麼?
- 11. 通過引用遞歸函數傳遞參數
- 12. 通過引用的CreateInstance傳遞參數
- 13. 通過引用傳遞的ANT參數
- 14. 參數傳遞通過引用
- 15. 通過引用傳遞參數Java
- 16. Maple通過引用傳遞參數
- 17. 傳遞參數通過引用
- 18. 通過函數參考時傳遞參數
- 19. 通過傳遞參數設置超時
- 20. 通過引用傳遞函數指針
- 21. 通過引用傳遞模板函數
- 22. 傳遞函數通過引用
- 23. 通過函數傳遞引用?
- 24. 通過函數參數傳遞變量
- 25. 通過高階函數傳遞參數
- 26. 通過db.transaction函數傳遞參數
- 27. 通過函數傳遞參數
- 28. 如何在部署ARMtemplate時通過TemplateParameterObject參數傳遞參數
- 29. 傳遞函數時通過函數傳遞變量
- 30. 通過引用傳遞串並通過在C函數參數++更新其值
您是不是指參考和價值? – 2008-09-27 15:21:41