程序中某些类成员不能直接operator <,重载运算符的时候容易出现一些错误写法
class A
{
int a,b;
operator < (int rhs) {
return (a < rhs.a || b < rhs.b);
}
}
但是这样写就犯了 left < right && right < left 问题,修正方案
class A
{
int a,b;
operator < (int rhs) {
if (a < rhs.a) {
return true;
}
if (a > rhs.a) {
return false;
}
if (b < rhs.b) {
return true;
}
return false;
}
}