设计一个复数类,并将“+”重载成友员函数来实现复数的加法。
时间: 2024-02-09 17:09:26 浏览: 14
好的,以下是代码示例:
```cpp
#include <iostream>
using namespace std;
// 定义复数类
class Complex {
public:
// 构造函数
Complex(double real = 0.0, double imag = 0.0) : m_real(real), m_imag(imag) {}
// 获取实部
double getReal() const {
return m_real;
}
// 获取虚部
double getImag() const {
return m_imag;
}
// 重载加法运算符为友元函数
friend Complex operator+(const Complex& c1, const Complex& c2);
private:
double m_real; // 实部
double m_imag; // 虚部
};
// 重载加法运算符为友元函数
Complex operator+(const Complex& c1, const Complex& c2) {
Complex result(c1.m_real + c2.m_real, c1.m_imag + c2.m_imag);
return result;
}
int main() {
// 实例化两个复数对象
Complex c1(1.0, 2.0);
Complex c2(3.0, 4.0);
// 计算两个复数的和
Complex sum = c1 + c2;
// 输出结果
cout << "c1 = " << c1.getReal() << " + " << c1.getImag() << "i" << endl;
cout << "c2 = " << c2.getReal() << " + " << c2.getImag() << "i" << endl;
cout << "sum = " << sum.getReal() << " + " << sum.getImag() << "i" << endl;
return 0;
}
```
输出结果:
```
c1 = 1 + 2i
c2 = 3 + 4i
sum = 4 + 6i
```