假设我有自定义数据类型:
MyBYTE
我希望重载==运算符,以便可以将它与BYTE进行比较:
if(b == mb)
{
//can't overload that operator
}
或
if(mb == b)
{
//CAN overload that operator
}
据我所知,当mb在右边时,我不能在MYBYTE类中重载操作符。这是真的?如果是,有任何解决方法吗?
答案 0 :(得分:1)
操作符可以声明为自由函数。几乎所有二元运算符(+=
和类似的->*
除外)都可以通过这种方式重载。
bool operator==(const MyBYTE& lhs, const BYTE& rhs) {
// do stuff here
}
bool operator==(const BYTE& lhs, const MyBYTE& rhs) {
// do stuff here
}