C++调用AbilityHolder::update传this报错:无匹配函数
问题分析与解决
错误原因很明确:AbilityHolder::update函数要求传入**Sprite类型的引用**,但你调用时传的是this——这是Player*类型的指针,指针无法直接匹配引用类型的参数,导致函数不匹配。
解决方法
直接将指针解引用为引用即可,修改Player类update函数中的调用代码:
// 原代码 abilit1Holder.update(this); // 修改后 abilit1Holder.update(*this);
因为Player继承自Sprite,*this作为Player&可以隐式转换为Sprite&,完全符合update函数的参数要求。
额外注意
你的Player类中成员变量拼写有误:abilit1Holder应该是ability1Holder(少了一个字母y),虽然这不是当前报错的原因,但后续可能引发其他问题,建议一并修正。
内容的提问来源于stack exchange,提问作者alonelypillow
相关产品推荐
相关产品推荐

