在 C++ 中,運(yùn)算符重載是一種允許你自定義操作符行為的特性
operator=
)、下標(biāo)(operator[]
)和調(diào)用(operator()
)等運(yùn)算符,你應(yīng)該使用成員函數(shù)形式。而對于其他運(yùn)算符,如加法(operator+
)、乘法(operator*
)等,你可以使用成員函數(shù)形式或非成員函數(shù)形式。const
關(guān)鍵字:當(dāng)你的運(yùn)算符不會修改對象狀態(tài)時(shí),請使用 const
關(guān)鍵字修飾成員函數(shù)。這樣可以提高代碼的安全性和可讀性。operator<<
和 operator>>
),通常將它們重載為非成員函數(shù),并將 std::ostream
或 std::istream
作為第一個(gè)參數(shù)。以下是一個(gè)簡單的示例,展示了如何在 C++ 中實(shí)現(xiàn)運(yùn)算符重載:
#include<iostream>
class Complex {
public:
Complex(double real, double imag) : real_(real), imag_(imag) {}
// 重載加法運(yùn)算符
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;
}
在這個(gè)示例中,我們?yōu)?Complex
類重載了加法運(yùn)算符,使得我們可以直接使用 +
運(yùn)算符將兩個(gè) Complex
對象相加。