我想重载运算符>在c ++中可以编写如下代码:
if(a>x>b)...;
我已经看到这个运算符只需要两个参数。
知道怎么做吗?
谢谢!
答案 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. 强>
要完成此操作,您应该为大于运算符添加成员函数重载,并实现它的自由函数重载版本。