这个问题已经在这里有了答案:
11年前关闭。
什么时候应该将变量声明为指针与引用传递的对象?它们在汇编中(至少渐近地在运行时)编译为同一件事,那么我什么时候应该使用哪个?
void foo(obj* param)
void foo(obj& param)
最佳答案
我的规则很简单:当要显示该值是可选的,因此可以为0时,请使用*。
从规则中排除:所有_obj_s都存储在容器中,并且您不想通过在各处使用foo(*value);
而不是foo(value);
来使代码看起来丑陋
因此,为了表明该值不能为0,请将assert(value);
放在函数开始处。