分别采用成员函数和友元函数重载实现复数的加法运算。也c++
时间: 2024-03-07 19:47:52 浏览: 72
好的,下面是实现复数加法运算的示例代码:
```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+(const Complex& c) const {
Complex res;
res.real = real + c.real;
res.imag = imag + c.imag;
return res;
}
// 友元函数重载运算符 +
friend Complex operator+(double d, const Complex& c) {
Complex res;
res.real = d + c.real;
res.imag = c.imag;
return res;
}
void display() const {
cout << real << " + " << imag << "i" << endl;
}
};
int main() {
Complex c1(2, 3), c2(4, 5), c3;
c3 = c1 + c2; // 使用成员函数重载运算符
c3.display(); // 输出 6 + 8i
c3 = 2.5 + c1; // 使用友元函数重载运算符
c3.display(); // 输出 4.5 + 3i
return 0;
}
```
上述代码中,我们使用了成员函数 `operator+` 和友元函数 `operator+` 分别重载了运算符 `+`。其中,成员函数 `operator+` 的作用是实现两个复数相加,友元函数 `operator+` 的作用是实现一个实数和一个复数相加。
在主函数中,我们分别使用成员函数和友元函数来实现复数加法运算,并输出运算结果。
运行结果如下:
```
6 + 8i
4.5 + 3i
```
希望这个示例可以帮助你理解如何使用成员函数和友元函数重载运算符实现复数加法运算。
阅读全文