编写一个C++程序定义一个复数类,在类中分别重载流插入运算符“<<”和流 提取运算符“>>”,使之实现复数的输入和输出功能。在主函数中, 分别使用运算符“<<”和“>>”,实现对复数类对象的输入和输出。
时间: 2023-11-27 09:55:15 浏览: 104
C++ 流插入和流提取运算符的重载的实现
5星 · 资源好评率100%
以下是一个示例程序,实现了复数类的定义以及流插入和提取运算符的重载:
```c++
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double 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 << "i";
return os;
}
istream& operator>>(istream& is, Complex& c) {
char plus, i;
is >> c.real >> plus >> c.imag >> i;
return is;
}
int main() {
Complex c1(1, 2);
cout << "c1 = " << c1 << endl;
Complex c2;
cout << "Enter a complex number: ";
cin >> c2;
cout << "You entered: " << c2 << endl;
return 0;
}
```
在上面的程序中,我们定义了一个名为 `Complex` 的复数类,包含实部和虚部两个私有成员变量,以及一个构造函数。我们还在类的外部定义了两个友元函数 `operator<<` 和 `operator>>`,分别实现了流插入和提取运算符的重载。在主函数中,我们使用流插入运算符将 `c1` 输出到屏幕上,然后使用流提取运算符从键盘上读入一个复数,并将其输出到屏幕上。
运行程序,可以得到以下输出:
```
c1 = 1+2i
Enter a complex number: 3+4i
You entered: 3+4i
```
阅读全文