将指针传递给指针参数的引用

Passing pointer to a reference to pointer argument

本文关键字:指针 引用 参数      更新时间:2023-10-16

我正在将旧代码从Solaris迁移到Linux。我有很多函数接受引用指针作为参数,如-

static TYPE GetInstrument(const Item*& item);

现在,当调用这个函数时,我有很多结构,如-

int test(Item *l_item) {
    TYPE lval = GetIntrument((const Item*)l_item);
}

编译和匹配函数定义失败。在这种情况下我们应该如何传递参数,有什么建议吗?

这个函数需要一个指向const的指针的引用,所以它可以强制转换为正确类型的引用:

TYPE lval = GetIntrument(const_cast<const Item*&>(l_item));

我使用const_cast而不是c风格的强制转换来更清楚地表达意图。(const Item*&)l_item .