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
}