RHS 运算符重载

RHS Operator Overloading

本文关键字:重载 运算符 RHS      更新时间:2023-10-16

假设我有一个自定义数据类型:

MyBYTE

我想重载 == 运算符,以便可以将其与 BYTE 进行比较,如下所示:

if(b == mb)
{
    //can't overload that operator
}

if(mb == b)
{
    //CAN overload that operator
}

据我所知,当 mb 在右侧时,我无法重载 MYBYTE 类中的运算符。这是真的吗?如果是这样,是否有任何解决方法?

运算符可以声明为自由函数。几乎所有的二元运算符(除了+=和类似以及->*和类似(都可以通过这种方式重载。

bool operator==(const MyBYTE& lhs, const BYTE& rhs) {
    // do stuff here
}
bool operator==(const BYTE& lhs, const MyBYTE& rhs) {
    // do stuff here
}