【发布时间】:2015-06-01 06:48:55
【问题描述】:
我正在将旧代码从 Solaris 迁移到 Linux。我有很多函数接受对指针的引用作为参数,例如 -
static TYPE GetInstrument(const Item*& item);
现在,在调用这个函数时,我有很多结构,例如 -
int test(Item *l_item) {
TYPE lval = GetIntrument((const Item*)l_item);
}
这无法编译和匹配函数定义。在这种情况下我们应该如何传递参数有什么建议吗?
【问题讨论】:
-
请注意,您不是“将指针传递给对指针参数的引用”,而是对指向
const的指针的引用。 -
请注意,
GetInstrument将 reference 指向 const 的指针,它可能会产生副作用,例如更改引用的指针。请仔细阅读文档以了解为什么如果采用引用而不是指针。 -
@cppcoder 它失败,没有匹配的函数调用 GetInstrument(const Item*)。 juanchopanza 的回答确实有助于编译这个,但我不确定这样做是否正确。