在C++中,運算符重載是一種允許你自定義已有運算符行為的方法
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double real = 0, double imag = 0) : real_(real), imag_(imag) {}
// 重載加法運算符
Complex operator+(const Complex& other) const {
return Complex(real_ + other.real_, imag_ + other.imag_);
}
// 重載輸出運算符
friend ostream& operator<<(ostream& os, const Complex& c) {
os << "(" << c.real_ << ", " << c.imag_ << ")";
return os;
}
private:
double real_;
double imag_;
};
int main() {
Complex c1(3, 4);
Complex c2(1, 2);
Complex c3 = c1 + c2;
cout << "c1 + c2 = " << c3 << endl;
return 0;
}
在這個例子中,我們定義了一個名為Complex
的類,它表示復數。我們重載了加法運算符(operator+
)以允許兩個復數相加。同時,我們還重載了輸出運算符(operator<<
),以便在輸出復數時提供更友好的格式。
在main
函數中,我們創建了兩個復數對象c1
和c2
,并將它們相加得到一個新的復數對象c3
。然后我們使用重載的輸出運算符將c3
打印出來。