在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);
}
};
注意:在使用這些運算符重載時,請確保它們的行為與內置類型中的行為一致,以避免引入錯誤或混淆。