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

Argument conversion for function taking an arg as 'const arg *&'

本文关键字:参数 arg const 转换 函数      更新时间:2023-10-16

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

这是另一个

下面是函数的定义:-

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 *&'

s_e变量需要声明为:

const ENTITY* s_e = NULL;

以匹配函数的声明。这意味着在调用函数后,您不会使用s_e指针来修改它所指向的ENTITY。

引用不是已经是const类型了吗?并且需要创造时间本身的价值?

不允许使用空指针引用。

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

尝试移动常量:

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

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