大于和小于一起

时间:2013-05-10 00:44:54

标签: c++ operator-overloading

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

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

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

知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分: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
}

<强> Here is a demo.

要完成此操作,您应该为大于运算符添加成员函数重载,并实现它的自由函数重载版本。