定义一个复数类 Complex,重载运算符“-”,使之能用于复数与实数的减法运算。参加运算的两个操作数一个是类的对象,一个是实数,顺序任意。例如:i-c,c-i 均合法(其中,c 为复数类的对象,i 为实数)。 减法规则:复数实部与实数相减,复数虚部不变。
时间: 2024-03-24 08:39:05 浏览: 11
好的,下面是符合你要求的Complex类的定义和运算符重载实现:
```cpp
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex operator- (double n) {
return Complex(real - n, imag);
}
friend Complex operator- (double n, Complex& c) {
return Complex(n - c.real, -c.imag);
}
void print() {
cout << real << " + " << imag << "i" << endl;
}
private:
double real, imag;
};
```
在这个类中,我们定义了一个构造函数,用于初始化复数的实部和虚部。然后,我们重载了运算符“-”,使得它既能处理 Complex 类对象与 double 类型的减法运算,也能处理 double 类型与 Complex 类对象的减法运算。
在 Complex 类对象与 double 类型的减法运算中,我们直接使用 real - n 计算实部,imag 不变即可。在 double 类型与 Complex 类对象的减法运算中,我们需要先计算出 n - c.real 作为实部,然后将虚部取反得到 -c.imag 作为虚部。
最后,我们还定义了一个 print 函数,用于输出 Complex 类对象的实部和虚部。
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)