用C++语言编写程序。定义一个复数类Complex,其数据成员为复数的实部和虚部,重载运算符“+”,实现两个复数间的加法运算。要求:将运算符函数重载为非成员、非友元的普通函数。编写一个完整的程序,测试重载的正确性。
时间: 2024-11-12 15:40:07 浏览: 9
定义一个名为complex 的复数类,其属性数据为复数的实部和虚部,要求构造函数和拷贝构造函数,并能打印复数的值
5星 · 资源好评率100%
在C++中,我们可以创建一个名为`Complex`的类来表示复数,包含实部(real)和虚部(imaginary)作为数据成员。为了实现两个复数之间的加法运算,并将其作为非成员、非友元函数处理,我们可以按照以下步骤操作:
```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) {}
};
// 非成员、非友元的加法运算符函数
Complex operator+(const Complex& a, const Complex& b) {
Complex sum(a.real + b.real, a.imag + b.imag);
return sum;
}
int main() {
Complex c1(3.0, 4.0); // 创建第一个复数
Complex c2(1.0, -2.0); // 创建第二个复数
// 使用自定义的+运算符进行加法
Complex result = c1 + c2;
cout << "复数加法的结果是: (" << result.real << ", " << result.imag << ")\n";
return 0;
}
```
在这个程序中,我们首先定义了一个`Complex`类,然后定义了`operator+`运算符作为类外的一个函数,它接受两个`Complex`类型的参数并返回一个新的`Complex`对象。在`main`函数中,我们实例化了两个复数对象,并通过这个自定义的加法运算符进行了加法运算。
阅读全文