<分区>
Possible Duplicate:
Difference between pointer variable and reference variable in C++
什么时候应该将我的变量声明为指针而不是按引用传递的对象?它们在汇编中编译成相同的东西(至少在运行时渐近地)所以我什么时候应该使用哪个?
void foo(obj* param)
void foo(obj& param)
<分区>
Possible Duplicate:
Difference between pointer variable and reference variable in C++
什么时候应该将我的变量声明为指针而不是按引用传递的对象?它们在汇编中编译成相同的东西(至少在运行时渐近地)所以我什么时候应该使用哪个?
void foo(obj* param)
void foo(obj& param)
最佳答案
我的规则很简单:当你想表明值是可选的,因此可以是 0 时使用 *。
从规则中排除:周围的所有 _obj_s 都存储在容器中,并且您不想通过使用 foo(*value);
而不是 foo 让您的代码看起来丑陋(值);
因此,为了表明该值不能为 0,请将 assert(value);
放在函数开头。
关于c++ * vs & 在函数声明中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081811/