程序中某些類成員不能直接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;
}
}