自动推断类型是指针吗?

时间:2016-06-03 21:24:08

标签: c++ unique-ptr auto

我不清楚我正在查看的函数中auto的用法。给定一个如下定义的参数:

someFunction(const unique_ptr<BSTNode<int>>& node, paramType param) {

函数体建立一个像这样的局部变量:

auto *localNode = node.get();

我对auto的理解是它推导出在编译时分配给它的类型。文档声明unique_ptr::get()返回指向它管理的对象的指针。鉴于这一事实,为什么有必要在变量声明中添加*

2 个答案:

答案 0 :(得分:3)

  

为什么有必要在变量声明中添加*

不是。好处是它使读者非常明显地localNode是一个指针。

答案 1 :(得分:3)

使用*来推断指针是不必要的,但可能是理想的。如果稍后更改了代码,使初始化程序不再返回指针,则*将导致自动扣除失败。如果使用此变量的代码在设计时考虑了指针,那么这可能是一件好事。