定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算 你函数重载为非成员、非友元的普通函数。编程序,求两个复数之和。
时间: 2024-10-21 16:13:41 浏览: 21
首先,我们可以定义一个名为`Complex`的类,它包含实部(real part)和虚部(imaginary part)作为数据成员,并提供一个构造函数来初始化它们。接下来,为了能够对复数进行加法运算,我们需要重载加号`+`运算符。由于题目要求是非成员、非友元的操作,我们将创建一个全局函数或者静态成员函数来完成这个操作。
```cpp
#include <iostream>
using namespace std;
class Complex {
public:
double real;
double imag;
// 构造函数
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
// 显示复数的格式
void display() const {
cout << "(" << real << ", " << imag << "i)" << endl;
}
};
// 重载+运算符为全局函数
Complex operator+(const Complex& c1, const Complex& c2) {
Complex sum;
sum.real = c1.real + c2.real;
sum.imag = c1.imag + c2.imag;
return sum;
}
int main() {
Complex num1(2.5, 3.7);
Complex num2(4.8, -1.2);
// 计算并显示两个复数的和
Complex result = num1 + num2;
result.display();
return 0;
}
```
在这个例子中,我们定义了`Complex`类,然后定义了一个全局函数`operator+`,接受两个`Complex`类型的参数,计算它们的和并返回一个新的`Complex`对象。在`main`函数中,我们创建了两个复数实例,调用`+`运算符并打印出结果。
阅读全文