我正在尝试实现 operator>()
仅使用 <
的函数, ||
和 !
运营商。我可以使用 ==
来做到这一点oparator,但我无法弄清楚如何仅使用三个给定的运算符来消除一个操作数等于另一个操作数的情况。以下是我在其他方面的做法:
bool operator>(a, b){
if(!(a < b) || !(a == b){
return true;
}
else{
return false;
}
}
到目前为止,我想到的唯一可行的方法是以某种方式创建一个递归函数。除此之外,还有其他方法可以做到这一点吗?
最佳答案
a < b
当且仅当 b > a
- 正如@Kerrek 在上面所说的那样简单。
bool operator>(a, b){
if(b < a){
return true;
}
else{
return false;
}
}
编辑:或者甚至进一步简化,感谢下面的@Mokosha
bool operator>(a, b){
return b < a;
}
关于c++ - 从 ">"运算符导出 "<"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763057/