在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);
}
};
注意:在使用这些运算符重载时,请确保它们的行为与内置类型中的行为一致,以避免引入错误或混淆。