我正在将旧代码从Solaris迁移到Linux。我有很多函数接受对指针的引用作为参数,如 -
static TYPE GetInstrument(const Item*& item);
现在,在调用此函数时,我有很多构造,例如 -
int test(Item *l_item) {
TYPE lval = GetIntrument((const Item*)l_item);
}
这无法编译和匹配函数定义。在这种情况下我们应该如何传递参数?
答案 0 :(得分:0)
该函数需要引用指向const
的指针,因此只需转换为正确类型的引用:
TYPE lval = GetIntrument(const_cast<const Item*&>(l_item));
我使用const_cast
而不是C风格的演员来更清楚地表达意图。这也有用:(const Item*&)l_item
。