请设计复数类complex,实现复数的输入、输出和加法运算。\n\n#include <iostream>\n#include <iomanip>\nusing namespace std;\n\n/* 你提交的
时间: 2023-06-05 21:47:03 浏览: 346
这道题目要求我们设计一个名为complex的类来实现复数的输入、输出和加法运算。下面是代码实现:
#include <iostream>
#include <iomanip>
using namespace std;
class complex {
private:
double real;
double imag;
public:
complex(double a=0, double b=0) {
real = a;
imag = b;
}
friend istream& operator>>(istream& input, complex& c) {
input >> c.real >> c.imag;
return input;
}
friend ostream& operator<<(ostream& output, const complex& c) {
output << setiosflags(ios::fixed) << setprecision(2) << c.real << "+" << c.imag << "i";
return output;
}
friend complex operator+(const complex& c1, const complex& c2) {
complex temp;
temp.real = c1.real + c2.real;
temp.imag = c1.imag + c2.imag;
return temp;
}
};
int main() {
complex c1, c2;
cout << "请输入两个复数:";
cin >> c1 >> c2;
complex c3 = c1 + c2;
cout << "它们的和是:" << c3 << endl;
return 0;
}
解释一下代码:
我们定义了一个complex类来表示复数,其中包含了两个数据成员:实部(real)和虚部(imag)。在类中,我们重载了两个运算符:输入运算符>>和输出运算符<<。同时,我们还重载了加法运算符+来实现两个复数的加法运算。
在主函数中,我们先定义了两个complex类型的变量c1和c2,用于存储输入的两个复数。然后,我们利用重载的输入运算符>>来实现复数的输入。接着,我们定义了一个新的complex类型变量c3,将它赋值为c1与c2的和。最后,我们利用重载的输出运算符<<来输出c3的值,即两个复数的和。
这段代码实现了复数的输入、输出和加法运算,能够很好地满足题目要求。
阅读全文