<分区>
我今天编写了一个 C++ 类,我编写了一个将参数作为引用而不是指针的函数,这是我很少做的事情。我总是通过指针。所以我正要改回去,然后我意识到 - 我不知道我是否应该,或者它是否重要。
所以我转向你们。我有三种传递参数的方式:
//1: By pointer
Object* foo(Object* bar) {…}
//2: By reference
Object& foo(Object& bar) {…}
//3: By value (just for completeness)
Object foo(Object bar) {…}
假设 #3 出于性能原因(是的,我知道编译器在这方面做得很好,但仍然如此),其他两个或多或少是等效的。
那么:“最佳”方法是什么?指针?引用?两者的某种结合?或者它甚至重要吗?技术原因是最好的,但文体原因同样好。
更新:我已经接受了 YeenFei 的回答,因为它处理了对我来说确定它的差异(即使我随后有针对性地忽略了他的建议 - 我喜欢将 NULL 作为一个选项...... ).但是每个人都提出了很好的观点 - 特别是 GMan(在评论中)和 Nemo,在处理性能和按值(value)传递的答案中。如果您是来这里寻找答案的,请检查所有答案!