采用"pass by reference"值的递归函数的包装函数

Wrapper Function for a Recursive Function that takes a "pass by reference" value

本文关键字:递归函数 函数 包装 reference pass by 采用      更新时间:2023-10-16

这里有一个问题:我正在尝试做,

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

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

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

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

我想在foo中你ptr分配一些值(否则*&没有值)。您不能传递nullptr并且必须声明一个指针,如wrapper所示nullptr因为 是一个右值。右值是一个表达式或"未命名的对象",你不能获取它的地址。这里有更多信息 为什么没有地址?