我需要将一个包含多个属性的类与整数进行比较,尽管这可能有点伸缩相等性的定义,但足够接近...
如何为不同类型重载相等运算符?
我基本上有一个像这样的类
struct MyClass {
int start;
int middle;
int threequarters;
};
以及重载运算符
inline bool operator==(const MyClass& lhs, const MyClass& rhs) {
return lhs.middle == rhs.middle;
}
因此,在与整数进行比较时,我需要同时与中间变量进行比较,但我不确定是否需要两组操作函数,一组是左手边是整数,另一组则是右手边是整数?
inline bool operator==(const int& lhs, const MyClass& rhs) {
return lhs == rhs.middle;
}
inline bool operator==(const MyClass& lhs, const int& rhs) {
return lhs.middle == rhs;
}
MyClass(int i) : middle(i) {}
。 - juanchopanzabool areEqualAtMiddle(const MyClass& lhs, const MyClass& rhs)
。 - Chris DrewMyClass
存储在一个集合中,在执行过程中某些时候我只能访问中间值,所以我需要想办法重新获取引用... - user3235200