2008-09-27 79 views

回答

2

儘可能將參數傳遞給使用引用的函數。 通過引用傳遞參數可以消除它們爲NULL的機會。 如果您希望可以將NULL值傳遞給函數,則使用指針。

+0

還有boost :: optional,它允許傳遞一個無效值,而不必使用指針或一個表示Empty的特殊值。 – efotinis 2008-09-27 15:35:28

2

一個很好的約定是:

  • 通行證由指針對象每當他們可以被操縱(副作用或作爲輸出)通過的功能。
  • 通過所有其他對象由const引用

這使調用者非常清楚,文檔最少,性能成本最低,哪些參數是常量或不是。

您也可以將其應用於基元類型,但是您是否需要將const引用用於非輸出參數值得商榷,因爲它們顯然是按值傳遞的,並且不能作爲函數以任何方式(對於直接類型 - 當然不是指針/引用)。