在C++中,你可以通过重载运算符来实现位运算。以下是一些常见位运算符的重载示例:
- 按位与(&):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator&(const MyClass& other) const { return MyClass(value & other.value); } };
- 按位或(|):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator|(const MyClass& other) const { return MyClass(value | other.value); } };
- 按位异或(^):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator^(const MyClass& other) const { return MyClass(value ^ other.value); } };
- 按位取反(~):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator~() const { return MyClass(~value); } };
- 左移(<<):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator<<(const MyClass& other) const { return MyClass(value << other.value); } };
- 右移(>>):
class MyClass { public: int value; MyClass(int v) : value(v) {} MyClass operator>>(const MyClass& other) const { return MyClass(value >> other.value); } };
注意:在使用这些运算符重载时,请确保它们的行为与内置类型中的行为一致,以避免引入错误或混淆。