【发布时间】:2011-09-13 17:56:58
【问题描述】:
我的一个朋友试图重载一个相等运算符来比较 Allegro 中的颜色,但是它不起作用,他得到错误“与运算符== 不匹配这是在 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 中的 ALLEGRO_COLOR 之外定义和实现的,对吧?这个问题怎么解决,能不能在 Allegro Color 结构体之外重载。
【问题讨论】:
-
你能提供一个最小的、完整的程序来说明你的问题吗?从您的代码摘录来看,您的
operator==似乎是某个类的成员函数;对吗? -
虽然很高兴知道您这样做是为了“您的朋友”,但在 SO 上可能不需要这种细节。一般来说,问题越短越好。
标签: c++ operator-overloading allegro