gpt4 book ai didi

C++ "Best"参数传递方式

转载 作者:可可西里 更新时间:2023-11-01 18:28:45 26 4
gpt4 key购买 nike

<分区>

我今天编写了一个 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)传递的答案中。如果您是来这里寻找答案的,请检查所有答案!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com