求解答一个C++题目

利用运算符重载,定义复数类的加法和减法,使之能够执行下列运算。Complexa(2,5)b(7,8)b(0,0)c=a+b;c=4.1+b;请高手给解答一个,谢谢了!我要... 利用运算符重载,定义复数类的加法和减法,使之能够执行下列运算。
Complex a(2,5) b(7,8) b(0,0)
c=a+b;
c=4.1+b;
请高手给解答一个,谢谢了!
我要写进卷子里的,哪个才是对的啊。。看着好复杂
展开
 我来答
efanabe
2012-06-24 · TA获得超过2008个赞
知道小有建树答主
回答量:708
采纳率:0%
帮助的人:1117万
展开全部
//实现了复数同复数的加减
//实现了复数同实数的加减
//实现了实数同复数的加减
//经测试,程序正确执行
//希望能帮助你

#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;
}
更多追问追答
追问
貌似不是我要问的东西啊,大神。。
追答
你要的东西全都包含在里面了,我还给你扩展了。纯手动,为你的题目编写的程序,还完整的测试了。你详细说明你的需求,我给你简略。
Andrewjackey
2012-06-24
知道答主
回答量:4
采纳率:0%
帮助的人:6286
展开全部
#include <iostream>
using namespace std;
class Complex {
public:
Complex (double r = 0.0, double i = 0.0) : m_r (r), m_i (i) {}
const Complex operator+ (const Complex& c) const {
return Complex (m_r + c.m_r, m_i + c.m_i);
}
const Complex operator- (const Complex& c) const {
return Complex (m_r - c.m_r, m_i - c.m_i);
}
private:
double m_r;
double m_i;
};
追问
这个不对吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式