我在写一个排序函数时,在一个类中这样声明和定义了
bool VecRcSelect_sort(const CRect &rectA, const CRect &rectB); //声明
bool CImageView::VecRcSelect_sort(const CRect &rectA, const CRect &rectB) //对选择区域排序
{
if (rectA.top < rectB.top)
{
return true;
}
······
else
{
return false;
}
}
编译时报错:error C2276: “&”: 绑定成员函数表达式上的非法操作。
最终解决办法: 加上static,类外声明为静态函数。(或者全局函数)大体如下:
static bool VecRcSelect_sort(const CRect &rectA, const CRect &rectB); //声明
bool VecRcSelect_sort(const CRect &rectA, const CRect &rectB) //对选择区域排序
{
if (rectA.top < rectB.top)
{
return true;
}
······
else
{
return false;
}
}
最后成功编译通过。
对了,在自定义排序比较方法中,千万不能忘了写最后的
else
{
return false;
}