来自「C语言相关程序」· 代码 · 共 183 行
TXT
183 行
#include<iostream.h>
class complex{
private:
double real; //实部
double imag; //虚部
public:
complex(double r = 0.0 ,double i = 0.0 ); //构造函数
void print(); //显示复数
friend complex operator+(const complex &,const complex &); //重载复数"+"
friend complex operator-(const complex &,const complex &); //重载复数"-"
friend complex operator*(const complex &,const complex &); //重载复数"*"
friend complex operator/(const complex &,const complex &); //重载复数"/"
friend complex &operator+=(complex &,const complex &); //重载复数"+="
friend complex &operator-=(complex &,const complex &); //重载复数"-="
friend complex &operator*=(complex &,const complex &); //重载复数"*="
friend complex &operator/=(complex &,const complex &); //重载复数"/="
};
complex::complex(double r,double i){
real=r;
imag=i;
}
complex operator +(const complex &c1,const complex &c2){ //重载复数"+"
complex temp;
temp.real=c1.real+c2.real;
temp.imag=c1.imag+c2.imag;
return temp; //返回局部变量,函数声明不可为引用,这时返回了局部变量的地址
}
complex operator -(const complex &c1,const complex &c2){ //重载复数"-"
complex temp;
temp.real=c1.real-c2.real;
temp.imag=c1.imag-c2.imag;
return temp;
}
complex operator *(const complex &c1,const complex &c2){ //重载复数"*"
complex temp;
temp.real=c1.real*c2.real-c1.imag*c2.imag;
temp.imag=c1.real*c2.imag+c1.imag*c2.real;
return temp;
}
complex operator /(const complex &c1,const complex &c2){ //重载复数"/"
complex temp;
double d;
d=(c2.real*c2.real+c2.imag*c2.imag);
temp.real=(c1.real*c2.real+c1.imag*c2.imag)/d;
temp.imag=(c2.real*c1.imag-c1.real*c2.imag)/d;
return temp;
}
complex &operator +=(complex &c1,const complex &c2){ //重载复数"+="
c1.real=c1.real+c2.real;
c1.imag=c1.imag+c2.imag;
return c1; //返回由引用参数传递过来的变量,函数声明可为引用
}
complex &operator -=(complex &c1,const complex &c2){ //重载复数"-="
c1.real=c1.real-c2.real;
c1.imag=c1.imag-c2.imag;
return c1;
}
complex &operator *=(complex &c1,const complex &c2){ //重载复数"*="
complex temp;
temp.real=c1.real*c2.real-c1.imag*c2.imag;
temp.imag=c1.real*c2.imag+c1.imag*c2.real;
c1=temp;
return c1;
}
complex &operator /=(complex &c1,const complex &c2){ //重载复数"/="
complex temp;
double d;
d=(c2.real*c2.real+c2.imag*c2.imag);
temp.real=(c1.real*c2.real+c1.imag*c2.imag)/d;
temp.imag=(c2.real*c1.imag-c1.real*c2.imag)/d;
c1=temp;
return c1;
}
void complex::print(){ //显示复数
cout<<real;
if(imag>=0) cout<<'+';
cout<<imag<<'i'<<endl;
}
void main()
{
complex v1(1,2),v2(3,-4),v3,v4,v5,v6,v7,v8,v9,v10;
v1.print();
v2.print();
v3=v1+=v2;
v3.print();
v4=v1-=v2;
v4.print();
v5=v1*=v2;
v5.print();
v6=v1/=v2;
v6.print();
v7=v1+v2;
v7.print();
v8=v1-v2;
v8.print();
v9=v1*v2;
v9.print();
v10=v1/v2;
v10.print();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?