何时通过引用传递函数参数以及何时通过地址?
答
尽可能将参数传递给使用引用的函数。 通过引用传递参数可以消除它们为NULL的机会。 如果您希望可以将NULL值传递给函数,则使用指针。
+0
还有boost :: optional,它允许传递一个无效值,而不必使用指针或一个表示Empty的特殊值。 – efotinis 2008-09-27 15:35:28
答
一个很好的约定是:
- 通行证由指针对象每当他们可以被操纵(副作用或作为输出)通过的功能。
- 通过所有其他对象由const引用。
这使调用者非常清楚,文档最少,性能成本最低,哪些参数是常量或不是。
您也可以将其应用于基元类型,但是您是否需要将const引用用于非输出参数值得商榷,因为它们显然是按值传递的,并且不能作为函数以任何方式(对于直接类型 - 当然不是指针/引用)。
您是不是指参考和价值? – 2008-09-27 15:21:41