重载流运算符:实现 Complex 的第三个版本
时间: 2024-10-15 15:30:33 浏览: 67
重载流运算符是为了让复杂类型(比如自定义的 Complex 类)能够像内置数学类型一样支持算术运算。对于复数类 Complex,如果我们想让它可以与流(如 std::complex 或 C++11 之后引入的 iostream 流)进行方便的操作,例如 `+=`、`-=` 这样的操作,我们可以实现它的 `operator+=` 和 `operator-=` 等成员函数。
第三个版本的重载示例可能会看起来像这样:
```cpp
class Complex {
private:
double real;
double imag;
public:
// ... 其他构造函数和成员函数
// 重载加法赋值运算符
Complex& operator+=(const Complex& other) {
real += other.real;
imag += other.imag;
return *this;
}
// 重载减法赋值运算符
Complex& operator-=(const Complex& other) {
real -= other.real;
imag -= other.imag;
return *this;
}
// 可能需要的其他运算符重载...
};
// 使用示例
Complex c1(1, 2);
Complex c2(3, 4);
c1 += c2; // c1 = c1 + c2
```
在这个例子中,`operator+=` 和 `operator-=` 实现了将另一个复数加到或从当前复数上,并返回修改后的对象引用,这样就可以链式操作。
阅读全文