网络上有很多关于各种运算符重载的信息、示例等。但是我却找不到一个简单枚举类型且包含诸如|=
或+=
等操作符重载的示例,真是苦恼。
按位或
的实现如下:
inline MyEnum operator | (MyEnum a, MyEnum b)
{
return (MyEnum)((int)a | (int)b);
}
我找到的所有复合操作的例子都是针对类的;类可以很容易地使用this
指针作为左侧操作数。在枚举中,我没有这个选项,那么正确的语法是什么?
更新: 我已经尝试过以下版本:
inline MyEnum operator |= (MyEnum a, MyEnum b)
{
return (MyEnum)((int)a | (int)b);
}
代码可以编译通过,但是没有返回正确的按位或
值。