c++ - 从 ">"运算符导出 "<"运算符

标签 c++ operators

我正在尝试实现 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/

相关文章:

c - 运算符优先级背后的逻辑

c++ - 如何使用 boost::python (pyopencv) 在 python 中使用 C++ 运算符

C++:错误:使用空句柄

c++ - 如何从字符串中删除第一个单词?

c++ - 2 种模板相关类型名称的区别

python - 在 C++ 应用程序中嵌入 python 环境

javascript - 这 ! Javascript 中的运算符将 true 返回为 false,反之亦然,对吗?

c++ - C++ (Visual Studio 6) 中 operator< 和 operator[] 的默认返回值是什么?

javascript - 为什么 # 字符在 JavaScript 中很特殊?

c++ - 模板的 typedef 是否保留静态初始化顺序?