在C++中,邏輯運(yùn)算符包括&&
(邏輯與)、||
(邏輯或)和!
(邏輯非)。為了重載這些運(yùn)算符,你需要定義相應(yīng)的函數(shù),并在函數(shù)名中使用運(yùn)算符對應(yīng)的字符串字面量。這里有一些示例:
#include <iostream>
class MyClass {
public:
int value;
MyClass(int val) : value(val) {}
// 邏輯與重載
MyClass operator&&(const MyClass& other) const {
if (value > 0 && other.value > 0) {
return MyClass(value * other.value);
} else {
return MyClass(0);
}
}
// 邏輯或重載
MyClass operator||(const MyClass& other) const {
if (value > 0 || other.value > 0) {
return MyClass(std::max(value, other.value));
} else {
return MyClass(0);
}
}
// 邏輯非重載
MyClass operator!() const {
return MyClass(-value);
}
};
int main() {
MyClass a(5);
MyClass b(3);
MyClass c = a && b; // 調(diào)用邏輯與重載
MyClass d = a || b; // 調(diào)用邏輯或重載
MyClass e = !a; // 調(diào)用邏輯非重載
std::cout << "a && b: " << c.value << std::endl; // 輸出:a && b: 15
std::cout << "a || b: " << d.value << std::endl; // 輸出:a || b: 5
std::cout << "!a: " << e.value << std::endl; // 輸出:!a: -5
return 0;
}
在這個示例中,我們定義了一個名為MyClass
的類,并重載了邏輯與(&&
)、邏輯或(||
)和邏輯非(!
)運(yùn)算符。當(dāng)我們在main
函數(shù)中使用這些運(yùn)算符時,它們會自動調(diào)用相應(yīng)的重載函數(shù)。