递归函数的包装函数,它采用“按引用传递”值

时间:2013-09-24 05:57:05

标签: c++

这是一个问题:我正在努力,

Node* foo(Node *& ptr, other args) {
  // some work here
}

在包装函数中,我必须声明一个临时值(没有意义):

Node* wrapper( ... ) {
  Node* p = nullptr;
  return foo(p, other args);
}

有没有办法摆脱包装函数中的第一行?谢谢!

1 个答案:

答案 0 :(得分:1)

我想在foo中您为ptr分配了一些值(否则*&没有值)。您无法传递nullptr,您必须声明wrapper中显示的指针,因为nullptr是一个右值。右值是一个表达式,或者是一个“未命名的对象”,你不能获取它的地址。这里有更多信息Why don't rvalues have an address?