我有一个这样的课程:
class Point
{
public:
int x;
int y;
bool operator==( Point& other )
{
return (x == other.x) && (y = other.y);
}
};
然后我有一个基本的Sprite类,它有一个点向量,以及我没有在下面显示的许多其他成员/方法:
class Sprite
{
std::vector<Point> points;
};
现在如何使用Point类中的operator ==在Sprite对象的向量中找到与另一个Sprite对象的向量中的任何其他点发生碰撞的任何Point?我尝试了类似下面的东西,但它不能正常工作。 尺寸()会返回点矢量中的总点数,点数()会返回点矢量:
bool Sprite::CollidesWith( Sprite* other )
{
for ( int ixThis = 0; ixThis < Size(); ixThis++ ) {
for ( int ixOther = 0; ixOther < other->Size(); ixOther++ ) {
if ( points->at(ixThis) == other->Points()->at(ixOther) )
return true;
}
}
return false;
}
有什么想法吗?
答案 0 :(得分:2)
您的operator==
不正确。
bool operator==( Point& other )
{
return (x == other.x) && (y == other.y);
}