1 重载<<输出运算符,使得cout<<(complex) data , 能够正常输出。 2 重载>>输入运算符,使得cin>>(complex) data , data能正常赋值。
时间: 2024-05-06 15:18:02 浏览: 92
运算符的重载
以下是一个示例实现:
```c++
#include <iostream>
using namespace std;
class complex {
private:
double real, imag;
public:
complex(double r = 0, double i = 0) : real(r), imag(i) {}
friend ostream& operator<<(ostream& os, const complex& c);
friend istream& operator>>(istream& is, complex& c);
};
ostream& operator<<(ostream& os, const complex& c) {
os << "(" << c.real << ", " << c.imag << ")";
return os;
}
istream& operator>>(istream& is, complex& c) {
is >> c.real >> c.imag;
return is;
}
int main() {
complex c;
cout << "请输入一个复数:" << endl;
cin >> c;
cout << "您输入的复数是:" << c << endl;
return 0;
}
```
在上面的示例中,我们重载了输出运算符 `<<` 和输入运算符 `>>`,使得可以通过 `cout << c` 和 `cin >> c` 来输出和输入复数。在输入时,我们假设用户按照 `(a, b)` 的格式输入,因此在 `operator>>` 中,我们先读取 `a`,再读取 `b`。在输出时,我们将复数以 `(a, b)` 的形式输出。
阅读全文