逻辑运算符在调用的函数上导致编译时错误

Logical operator causing compile-time error on functions called

这个问题以前可能有人回答过,但是四处搜索和使用 google 并没有把我带到那里,所以我会问。

我目前正在制作游戏并处理碰撞,但是,出于某种原因,似乎每当我尝试编译时都会得到 ISO C++ forbids comparison between pointer and integer

起初我以为我的语法可能有问题,我检查了一下,但找不到任何东西,所以我就把这行代码留给了这个:

if((getMinX() > c->getMinX()) && (getMinX() < c-getMaxX()))

我尝试添加 this-> 或添加括号,但这似乎不起作用,但是,只是做

if(this->getMinX() > c->getMinX())

似乎和

一样工作正常
if((5 > 3) && (5 < 10))

有没有我遗漏的东西?

两个对象都派生自 class 定义为 Collideable

class Collideable
{ public:
    bool collidesWith(Collideable*);
    virtual int getMinX() = 0;
    virtual int getMaxX() = 0;
    virtual int getMinY() = 0;
    virtual int getMaxY() = 0;
};

所有 classes 都从虚方法中正确覆盖,导致问题的代码在 bool Collideable::collidesWith(Collideable* c)

根据 http://www.cplusplus.com/doc/tutorial/operators/ 逻辑运算符 return 一个布尔值(这对我来说很有意义,来自 Java)那么是什么导致了这个问题?

很难知道这是程序中的问题还是简单的转录问题:

第一行写成c-getMaxX();也许应该是 c->getMaxX()?

您有 c-getMaxX(),但您需要 c->getMaxX(),还有 >