将"operator>"委托给"operator<"是不好的。
这是因为"operator>"和"operator<"具有相反的含义。将">"操作符委托给"<"操作符会导致逻辑错误和混乱,因为代码的含义与实际情况相反。这样的代码容易引发错误,并且会给维护和调试带来困难。
正确的做法是使用正确的操作符来实现预期的逻辑。在比较时,应使用正确的操作符来表示所需的比较关系。如果需要反转比较结果,可以使用"!"(逻辑非)操作符来实现,而不是将操作委托给不同的操作符。
例如,在C++中,可以通过重载运算符来实现自定义的比较行为。如果需要将">"操作委托给"<",可以使用"operator<"来实现">"的逻辑:
bool operator>(const MyClass& lhs, const MyClass& rhs) {
return rhs < lhs;
}
这样,当使用">"进行比较时,实际上调用的是"<"操作符,并且返回相反的结果,从而实现了">"的逻辑。
总之,将"operator>"委托给"operator<"是一个容易引发错误和混乱的做法,应该避免使用。正确的做法是直接使用正确的操作符来实现预期的逻辑比较。
领取专属 10元无门槛券
手把手带您无忧上云