定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
时间: 2024-11-04 09:11:02 浏览: 3
复数类加减法运算符重载成员函数
5星 · 资源好评率100%
在C++中,我们可以定义一个名为`Complex`的类来表示复数,并通过重载运算符"+"来支持复数之间的加法。由于题目要求将运算符函数作为非成员、非友元的普通函数,我们需要创建一个独立的函数,例如`complex_addition`,接收两个`Complex`类型的参数并返回一个新的`Complex`对象表示它们的和。
首先,我们定义`Complex`类:
```cpp
class Complex {
public:
double real;
double imag;
// 构造函数
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
// 为了展示如何重载运算符,提供一个get()方法获取表示复数的字符串形式
std::string get() const {
return "(" + std::to_string(real) + " + " + std::to_string(imag) + "i)";
}
};
```
然后,我们定义一个名为`complex_addition`的外部函数,它接受两个`Complex`对象作为输入,并计算它们的和:
```cpp
Complex complex_addition(const Complex& c1, const Complex& c2) {
Complex result(c1.real + c2.real, c1.imag + c2.imag);
return result;
}
```
最后,我们可以编写一个简单的测试程序来演示如何使用这个功能:
```cpp
int main() {
Complex a(3.0, 4.0);
Complex b(5.0, -2.0);
Complex sum = complex_addition(a, b);
std::cout << "Sum of " << a.get() << " and " << b.get() << " is: " << sum.get() << std::endl;
return 0;
}
```
在这个程序中,当我们调用`sum = complex_addition(a, b)`时,会将复数a和b相加,并打印出结果。
阅读全文