定义一个复数类,用友元函数实现对双目运算符“+”的运算符重载,使其 适用于复数运算。用c++实现
时间: 2024-02-06 16:10:16 浏览: 95
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 &c2) const;
void display() const;
friend Complex operator+(double r, const Complex &c);
};
Complex Complex::operator+(const Complex &c2) const {
return Complex(real + c2.real, imag + c2.imag);
}
void Complex::display() const {
cout << real << " + " << imag << "i" << endl;
}
Complex operator+(double r, const Complex &c) {
return Complex(c.real + r, c.imag);
}
int main() {
Complex c1(1, 2);
Complex c2(3, 4);
Complex c3 = c1 + c2;
c3.display();
Complex c4 = 5 + c1;
c4.display();
return 0;
}
```
在上述实现中,我们重载了`+`运算符,使得两个`Complex`对象可以直接相加。此外,我们还定义了一个友元函数`operator+`,使得一个`double`类型的数值和`Complex`对象也可以相加。
阅读全文