定义一个复数类complex。

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:20:20
在这基础上再加上重载运算符“+”,“—”,使之能用于复数加,减,乘,除。要完整的程序。
#include<iostream>
using namespace std;
class Complex
{ float Real, Image;
public:
Complex(float r=0,float i=0) { Real=r;Image=i;}
void Show()
{cout <<"Real="<<Real<<'\t'<<"Image="<<Image<<'\n';}
friend Complex operator *(Complex &, Complex &);
Complex operator /(Complex &); //重载运算符+
};
Complex operator *( Complex &c1,Complex &c2)
{ Complex t;
t.Real=c1.Real * c2.Real - c1.Image * c2.Image;
t.Image = c1.Image*c2.Real +c1.Real* c2.Image;
return t;
}
Complex Complex::operator /(Complex &c)
{ Complex t;
t.Real =(Real *c.Real+ Image * c.Image)/(c.Real*c.Real+ c.Image * c.Image);
t.Image = (Image *c.Real - Real * c.Image)/(c.Real*c.Real+ c.Image * c.Image);
return t;
}
void main() //主函数
{ Complex c1(5,4),c2(2,1

Complex operator +(const Complex & t1,const Complex & t2)
{
Complex term(0,0);
term.real=t1.real+t2.real;
term.image=t1.image+t2.image;
return term;
}
Complex operator -(const Complex & t1,const Complex & t2)
{
Complex term(0,0);
term.real=t1.real-t2.real;
term.image=t1.image-t2.image;
return term;
}
Complex operator -(const Complex & t)
{
Complex term(0,0);
term.real=-t.real;
term.image=-t.image;
return term;
}
void Complex::show()
{
cout<<real<<"+"<<image<<'i'<<endl;
}

模仿运算/

//类中声明
Complex operator +(Complex &); //重载运算符+
Complex operator -(Complex &); //重载运算符-

//实现
Complex Complex::operator +( Complex &c)
{
Complex t;
t.Real = this->Real + c.Real;
t.Image = this->Image + c.Image;
return t;
}