//实现了复数同复数的加减
//实现了复数同实数的加减
//实现了实数同复数的加减
//经测试,程序正确执行
//希望能帮助你
#include <iostream>
#include <cstdlib>
using namespace std;
class Complex
{
public:
Complex()
{
real=0.0;
imag=0.0;
}
Complex(float r,float i)
{
real=r;
imag=i;
}
Complex operator+(Complex &);
Complex operator-(Complex &);
Complex operator+(float);
friend Complex operator-(float,Complex &);
friend Complex operator+(float,Complex &);
Complex operator-(float);
void print()
{
if(real>0)
cout<<imag<<"i+"<<real<<endl;
else if(real<0)
cout<<imag<<"i-"<<-real<<endl;
else cout<<imag<<"i"<<endl;
}
private:
float real;
float imag;
};
Complex Complex::operator+(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
Complex Complex::operator+(float c1)
{
Complex c;
c.real=c1+real;
c.imag=imag;
return c;
}
Complex operator+(float c1,Complex &c2)
{
Complex c;
c.real=c2.real+c1;
c.imag=c2.imag;
return c;
}
Complex Complex::operator-(Complex &c2)
{
Complex c;
c.real=real-c2.real;
c.imag=imag-c2.imag;
return c;
}
Complex operator-(float c1,Complex &c2)
{
Complex c;
c.real=c1-c2.real;
c.imag=-c2.imag;
return c;
}
Complex Complex::operator-(float c2)
{
Complex c;
c.real=real-c2;
c.imag=imag;
return c;
}
int main()
{
Complex a(2,5),b(7,8),c;
c=a+b;
c.print();
c=4.1+b;
c.print();
c=a-8;
c.print();
c=a+3.3;
c.print();
c=4-b;
c.print();
return 0;
}
追问貌似不是我要问的东西啊,大神。。
追答你要的东西全都包含在里面了,我还给你扩展了。纯手动,为你的题目编写的程序,还完整的测试了。你详细说明你的需求,我给你简略。
追问就单纯解答这个题就行了,是往卷子上写的,上面太多了
追答你的示例给了复数和复数的加法:
c=a+b;
还给了实数和复数的加法:
c=4.1+b;
出于加法交换律的考虑,我添加了复数和实数的加法。
然后你要求写减法运算,因此又有:复数和复数的减法、实数和复数的减法、复数和实数的减法。根据你的题目要求就是这样的。main函数和print函数是测试用,可以删除。
如果哪种运算多余,请追问,我帮你删除。