在 C++ 中,運算符重載是一種允許你自定義操作符行為的特性
operator=
)、下標(operator[]
)和調用(operator()
)等運算符,你應該使用成員函數形式。而對于其他運算符,如加法(operator+
)、乘法(operator*
)等,你可以使用成員函數形式或非成員函數形式。const
關鍵字:當你的運算符不會修改對象狀態時,請使用 const
關鍵字修飾成員函數。這樣可以提高代碼的安全性和可讀性。operator<<
和 operator>>
),通常將它們重載為非成員函數,并將 std::ostream
或 std::istream
作為第一個參數。以下是一個簡單的示例,展示了如何在 C++ 中實現運算符重載:
#include<iostream>
class Complex {
public:
Complex(double real, double imag) : real_(real), imag_(imag) {}
// 重載加法運算符
Complex operator+(const Complex& other) const {
return Complex(real_ + other.real_, imag_ + other.imag_);
}
private:
double real_;
double imag_;
};
int main() {
Complex a(1, 2);
Complex b(3, 4);
Complex c = a + b;
std::cout << "Result: (" << c.real_ << ", " << c.imag_ << ")\n";
return 0;
}
在這個示例中,我們為 Complex
類重載了加法運算符,使得我們可以直接使用 +
運算符將兩個 Complex
對象相加。