请编写函数实现并测试运算符重载的方法。 要求: 1、将运算符重载为成员函数,实现复数加实数、复数减实数的功能;
时间: 2024-05-05 19:20:02 浏览: 108
运算符重载函数
以下是实现运算符重载的代码示例:
```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+(double num) {
Complex res;
res.real = real + num;
res.imag = imag;
return res;
}
Complex operator-(double num) {
Complex res;
res.real = real - num;
res.imag = imag;
return res;
}
void display() {
cout << real << "+" << imag << "i" << endl;
}
};
int main() {
Complex c1(2, 3);
Complex c2 = c1 + 4; // 复数加实数
Complex c3 = c1 - 1.5; // 复数减实数
c1.display();
c2.display();
c3.display();
return 0;
}
```
运算符重载的关键在于重载运算符的函数需要返回一个新的对象,而不是修改原有对象的值。在上述代码中,我们使用了类似于复制构造函数的方式来创建新的对象,并将运算结果存储在该对象中。在 `main` 函数中,我们分别测试了复数加实数和复数减实数的功能。
阅读全文