我的一个朋友试图重载一个相等运算符来比较 Allegro 中的颜色,但是它不起作用,他收到错误“no match for operator==” 这是在 Color 类/结构之外重载的,重载的运算符函数是如下图:
typedef ALLEGRO_COLOR Color;
bool operator==(const Color& rhs) const
{
if(_col.a==rhs.a && _col.b==rhs.b && _col.g==rhs.g && _col.r==rhs.r)
return true;
else
return false;
}
.
.
.
//Data member
Color _col
我认为这不起作用,因为运算符是ALLEGRO_COLOR
在 Allegro 之外定义和实现的,对吧?如何解决这个问题,是否可以在 Allegro Color 结构之外重载。