函数的参数转换将arg称为'const arg *&'

时间:2012-02-10 00:25:22

标签: c++ visual-studio-2008 visual-c++ mfc

这是我在恢复旧代码时遇到的问题

这是另一个 -

所以这里是一个函数的定义: -

int shen_get_entity_from_list(const ENTITY_LIST& list, const ENTITY*& e);

以下是定义变量的方式

ENTITY *t_ent = NULL, *p_e = NULL, *s_e = NULL, *t_e = NULL;

现在当我调用此函数时

s_pos = shen_get_entity_from_list(sortedACISfeatureList, s_e);

它给了我以下错误

  

错误C2664:'shen_get_entity_from_list':无法将参数2从'ENTITY *'转换为'const ENTITY *&'

3 个答案:

答案 0 :(得分:1)

s_e变量需要声明为:

const ENTITY* s_e = NULL;

匹配函数的声明。这表示在调用函数后,你不会使用s_e指针来修改它指向的ENTITY。

答案 1 :(得分:0)

是不是已经const类型的引用?并且在创作时需要价值吗?

不允许空指针引用。

因为所有这些我不觉得这个问题是可以解决的

答案 2 :(得分:-1)

尝试移动const:

int shen_get_entity_from_list(const ENTITY_LIST& list, ENTITY* const& e);

这为您提供了对要传递的类型的const引用,而不是对指向const ENTITY的指针的非const引用。