阅读量:85
在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>
- 右移(>>):
class MyClass {
public:
int value;
MyClass(int v) : value(v) {}
MyClass operator>>(const MyClass& other) const {
return MyClass(value >> other.value);
}
};
注意:在使用这些运算符重载时,请确保它们的行为与内置类型中的行为一致,以避免引入错误或混淆。