定义了一实部为real,虚部为imag的复数类complex,并在类中重载运算符,实现复数二元加、减及输入运算。
时间: 2024-04-30 19:18:29 浏览: 178
下面是一个实现复数类complex的示例代码:
```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;
}
// 重载加法运算符
complex operator+(const complex& other) const {
return complex(real+other.real, imag+other.imag);
}
// 重载减法运算符
complex operator-(const complex& other) const {
return complex(real-other.real, imag-other.imag);
}
// 重载输入运算符
friend istream& operator>>(istream& in, complex& c) {
cout << "请输入实部和虚部,以空格分隔:" << endl;
in >> c.real >> c.imag;
return in;
}
void print() const {
cout << real << "+" << imag << "i" << endl;
}
};
int main() {
complex c1(1, 2), c2(3, 4);
complex c3 = c1 + c2;
complex c4 = c1 - c2;
c3.print(); // 输出 4+6i
c4.print(); // 输出 -2-2i
complex c5;
cin >> c5;
c5.print(); // 输出用户输入的实部和虚部
return 0;
}
```
在上面的代码中,我们定义了一个复数类complex,其中real和imag分别表示实部和虚部。我们重载了加法和减法运算符,以便能够对复数进行加减运算。我们还重载了输入运算符,以便能够从用户输入中读取复数的实部和虚部。最后在main函数中,我们展示了如何使用这个复数类。
阅读全文