C++運(yùn)算符重載怎樣實(shí)現(xiàn)位運(yùn)算

c++
小樊
81
2024-11-09 02:42:30

在C++中,你可以通過(guò)重載運(yùn)算符來(lái)實(shí)現(xiàn)位運(yùn)算。以下是一些常見(jiàn)位運(yùn)算符的重載示例:

  1. 按位與(&):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator&(const MyClass& other) const {
        return MyClass(value & other.value);
    }
};
  1. 按位或(|):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator|(const MyClass& other) const {
        return MyClass(value | other.value);
    }
};
  1. 按位異或(^):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator^(const MyClass& other) const {
        return MyClass(value ^ other.value);
    }
};
  1. 按位取反(~):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator~() const {
        return MyClass(~value);
    }
};
  1. 左移(<<):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator<<(const MyClass& other) const {
        return MyClass(value << other.value);
    }
};
  1. 右移(>>):
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator>>(const MyClass& other) const {
        return MyClass(value >> other.value);
    }
};

注意:在使用這些運(yùn)算符重載時(shí),請(qǐng)確保它們的行為與內(nèi)置類型中的行為一致,以避免引入錯(cuò)誤或混淆。

0