1

我想在 C++ 中重载运算符 > 以便可以编写如下代码:

if(a>x>b)...;

我已经看到这个运算符只需要两个参数。

知道怎么做吗?

谢谢!

4

1 回答 1

1

这是一个相对简单的例子,但它应该做你想做的事:

#include <iostream>

struct cool_operator
{
    cool_operator(int _n = 0, bool b = true) : first(b), n(_n) {}

    bool first;

    bool operator <(int x) const
    {
        return first && (n < x);
    }

    int n;
};

cool_operator operator <(int x, cool_operator const &rhs)
{
    return cool_operator(lhs.n, x < rhs.n);
}

int main()
{
    cool_operator c(4);

    std::cout << std::boolalpha << (3 < c < 5); // true
}

这是一个演示。

为了完成这个,你应该为大于运算符添加成员函数重载,并实现它的自由函数重载版本。

于 2013-05-10T00:57:11.330 回答