我想在 C++ 中重载运算符 > 以便可以编写如下代码:
if(a>x>b)...;
我已经看到这个运算符只需要两个参数。
知道怎么做吗?
谢谢!
我想在 C++ 中重载运算符 > 以便可以编写如下代码:
if(a>x>b)...;
我已经看到这个运算符只需要两个参数。
知道怎么做吗?
谢谢!
这是一个相对简单的例子,但它应该做你想做的事:
#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
}
为了完成这个,你应该为大于运算符添加成员函数重载,并实现它的自由函数重载版本。