C++ RHS运算符重载

C++ RHS运算符重载,c++,C++,假设我有一个自定义数据类型: MyBYTE 我想重载==运算符,这样就可以将它与这样的字节进行比较: if(b == mb) { //can't overload that operator } 或 就我所知,当mb在右边时,我不能在MYBYTE类中重载运算符。这是真的吗?如果有,是否有任何解决方法?运算符可以声明为自由函数。几乎所有二进制运算符(除了+=和类似运算符以及->*和类似运算符)都可以通过这种方式重载 bool operator==(const MyBYTE& l

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

MyBYTE
我想重载==运算符,这样就可以将它与这样的字节进行比较:

if(b == mb)
{
    //can't 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
}

只要让重载成为一个自由函数,你就可以很好地用两种方式重载它。你可以找到答案
bool operator==(const MyBYTE& lhs, const BYTE& rhs) {
    // do stuff here
}

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