gpt4 book ai didi

c++ - 无法将 'this' 指针从 'const Bullet' 转换为 'Bullet &'

转载 作者:搜寻专家 更新时间:2023-10-31 00:37:26 25 4
gpt4 key购买 nike

我正在尝试为我的项目符号使用列表。每当我运行我的更新项目符号代码时,它都会给我这个错误:

错误 1 ​​错误 C2662:“Bullet::detectCollision”:无法将“this”指针从“const Bullet”转换为“Bullet &”

我的 list :

std::list<Bullet> bullet_list;

我的更新代码:

std::list<Bullet>::const_iterator cIter;
for ( cIter = bullet_list.begin( ); cIter != bullet_list.end( ); cIter++ )
{
if((*cIter).detectCollision(monster.position,monster.getHeight(),monster.getWidth()))
{
//Do stuff here
}
if ((*cIter).detectCollision(boss.getPosition(),boss.getHeight(),boss.getWidth()))
{
//Do stuff here
}
}

我的检测碰撞代码:

bool Bullet::detectCollision(Vector objTwo,int heightT,int widthT)
{
if(position.getVectorX() >= objTwo.getVectorX() - (widthT/2) && position.getVectorX() <= objTwo.getVectorX() + (widthT/2)
&& position.getVectorY() >= objTwo.getVectorY() - (widthT/2)&& position.getVectorY() <= objTwo.getVectorY() + (heightT/2) && alive)
{
return false;
}
return true;
}

最佳答案

您需要将detectCollision 声明为const

bool Bullet::detectCollision(Vector objTwo,int heightT,int widthT) const

如果您不这样做,它会尝试进行转换,以便它可以在 const 引用上调用非常量函数,但这是不允许的。

关于c++ - 无法将 'this' 指针从 'const Bullet' 转换为 'Bullet &',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com