在引用(T&)和const指针(T*const)之间进行选择

iam*_*ind 7 c++ pointers coding-style reference

是否有任何合理的用例,其中一个应该使用const指针而不是引用?

T obj;
T &r = obj;  // style-1
T* const p = &obj; // style-2
Run Code Online (Sandbox Code Playgroud)

这两种风格都可以用于同一目的.我总是喜欢代码中的第一种样式,并将后一种样式视为已弃用.但是我仍然想知道是否错过了第二种风格更好的用例?

编辑:不限于上面的例子,我在更广泛的意义上讲,

void foo (T& r); // style-1
void foo (T* const p); // style-2
Run Code Online (Sandbox Code Playgroud)

[我从几个答案中看到,style-2允许传递null.]

Ida*_*rye 5

const指针(T* const)可以是NULL,并且传递参数时的功能或从函数返回值时,可以是有用的.例如,如果您有搜索功能,NULL如果找不到任何内容,您可能希望它返回.如果它返回引用类型,则不能这样做.