RHS操作员重载

时间:2017-11-10 18:33:07

标签: c++

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

MyBYTE

我希望重载==运算符,以便可以将它与BYTE进行比较:

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

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

据我所知,当mb在右边时,我不能在MYBYTE类中重载操作符。这是真的?如果是,有任何解决方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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