编写一个复数类,实现复数的初始化、输出、两复数相加、复数与小数相加等功能。要求:两复数相加、复数与小数相加功能用以下2种方法实现: 1.成员函数的方法 2.友元函数的方法
时间: 2024-02-24 18:00:15 浏览: 92
好的,我来回答你的问题。以下是复数类的实现代码:
```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;
}
void display(){
cout << real << "+" << imag << "i" << endl;
}
Complex add(Complex &a){
Complex b;
b.real=real+a.real;
b.imag=imag+a.imag;
return b;
}
Complex add(double num){
Complex b;
b.real=real+num;
b.imag=imag;
return b;
}
friend Complex operator+(Complex &a, Complex &b){
Complex c;
c.real=a.real+b.real;
c.imag=a.imag+b.imag;
return c;
}
friend Complex operator+(double num, Complex &a){
Complex b;
b.real=num+a.real;
b.imag=a.imag;
return b;
}
};
int main(){
Complex c1(3,4),c2(5,-10),c3;
c3 = c1.add(c2);
cout<<"c1+c2=";
c3.display();
c3 = c1+c2;
cout<<"c1+c2=";
c3.display();
c3 = c1.add(2.5);
cout<<"c1+2.5=";
c3.display();
c3 = 2.5+c1;
cout<<"2.5+c1=";
c3.display();
return 0;
}
```
在这个例子中,我们定义了复数类 `Complex`,包括实部和虚部,以及初始化、输出、两复数相加、复数与小数相加等功能。
在类的定义中,我们实现了两个构造函数:一个是默认构造函数,一个是自定义构造函数;
我们使用成员函数的方式实现了两个加法运算:一个是两个复数相加,一个是一个复数与一个小数相加;
我们使用友元函数的方式也实现了两个加法运算:一个是两个复数相加,一个是一个小数与一个复数相加;
最后在主函数中,我们测试了这些功能,并输出了计算结果。
希望这个例子能够帮助你理解复数类的实现。
阅读全文