定义一个复数类Complex,重载运算符“-”,使之能用于复数的减法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之差。
时间: 2024-02-20 10:57:01 浏览: 62
好的,这是一个关于C++的问题。下面是我编写的代码,希望能够帮到你。
```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) {} // 构造函数
double getReal() { return real; }
double getImag() { return imag; }
};
// 定义运算符重载函数
Complex operator-(Complex &a, Complex &b) {
double r = a.getReal() - b.getReal();
double i = a.getImag() - b.getImag();
return Complex(r, i);
}
int main() {
Complex a(5, 3);
Complex b(2, 4);
Complex c = a - b;
cout << "The result is: " << c.getReal() << " + " << c.getImag() << "i" << endl;
return 0;
}
```
在这段代码中,我们定义了一个复数类`Complex`,并在其中定义了实部`real`和虚部`imag`。我们重载了减法运算符`-`,并将其定义为一个非成员、非友元的普通函数。在`main`函数中,我们创建了两个复数对象`a`和`b`,并对它们进行减法运算,将结果存储在对象`c`中,最后输出结果。
阅读全文