这个问题已经在这里有了答案:




11年前关闭。






什么时候应该将变量声明为指针与引用传递的对象?它们在汇编中(至少渐近地在运行时)编译为同一件事,那么我什么时候应该使用哪个?

void foo(obj* param)
void foo(obj& param)

最佳答案

我的规则很简单:当要显示该值是可选的,因此可以为0时,请使用*。

从规则中排除:所有_obj_s都存储在容器中,并且您不想通过在各处使用foo(*value);而不是foo(value);来使代码看起来丑陋
因此,为了表明该值不能为0,请将assert(value);放在函数开始处。

10-08 08:58
查看更多