分别采用成员函数和友元函数重载实现复数的加法运算,用c++
时间: 2024-03-18 21:41:30 浏览: 77
c++_运算符重载
好的,以下是使用成员函数和友元函数分别重载实现复数加法运算的示例代码:
```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& other) const {
return Complex(real + other.real, imag + other.imag);
}
double getReal() const { return real; }
double getImag() const { return imag; }
};
// 友元函数重载实现复数加法运算
Complex operator+(const Complex& c1, const Complex& c2) {
return Complex(c1.getReal() + c2.getReal(), c1.getImag() + c2.getImag());
}
int main() {
Complex c1(1, 2);
Complex c2(3, 4);
// 使用成员函数重载实现复数加法
Complex c3 = c1 + c2;
cout << "c1 + c2 = " << c3.getReal() << " + " << c3.getImag() << "i" << endl;
// 使用友元函数重载实现复数加法
Complex c4 = c1 + c2;
cout << "c1 + c2 = " << c4.getReal() << " + " << c4.getImag() << "i" << endl;
return 0;
}
```
输出结果为:
```
c1 + c2 = 4 + 6i
c1 + c2 = 4 + 6i
```
可以看到,无论是使用成员函数还是友元函数重载实现复数加法,得到的结果都是一样的。
阅读全文