用c++编写完整程序:定义一个复数类Complex,重载运算符“-”,使之能用于复数的减法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之差。
时间: 2024-02-09 22:12:45 浏览: 79
定义复数类Complex,进行运算符重载
5星 · 资源好评率100%
下面是用 C++ 编写的程序:
```cpp
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex operator-() const { return Complex(-real, -imag); }
double real, imag;
};
Complex operator-(const Complex& a, const Complex& b) {
return Complex(a.real - b.real, a.imag - b.imag);
}
int main() {
Complex a(3, 2), b(1, 7);
Complex c = a - b;
cout << "The result is: " << c.real << " + " << c.imag << "i" << endl;
return 0;
}
```
在上面的程序中,我们首先定义了一个复数类 `Complex`,它有两个数据成员 `real` 和 `imag`,分别表示实部和虚部。我们重载了运算符 `-`,使之能够进行复数的减法运算。需要注意的是,为了让这个运算符函数成为非成员、非友元的普通函数,我们将其定义在类外,并且在函数名前加上了 `operator-`。
在 `main` 函数中,我们定义了两个复数 `a` 和 `b`,然后通过 `a - b` 得到它们的差,并将结果存放在 `c` 中。最后输出 `c` 的实部和虚部即可。
阅读全文