哪位高手帮我解释一下下面的问题(都已经注释在程序上面了),谢谢。

#include<iostream>usingnamespacestd;classcomplex{private:doublereal,imag;public:compl... #include <iostream>
using namespace std;
class complex
{
private:
double real,imag;
public:
complex(double r=0.0,double i=0.0)
{
real=r;
imag=i;
}
complex operator + (const complex &);
complex operator - (const complex &);
complex operator - ();
complex operator * (const complex &);
complex operator / (const complex &);
complex& operator ++(); //这句为什么要多出一个&符号,是什么意思?
complex operator ++ (int);
void disp()
{
cout<<real<<"+"<<"i*"<<imag<<endl;
}
};
complex complex::operator + (const complex &cc)
{
return complex(real+cc.real,imag+cc.imag); //为什么一个是real,一个是cc.real,(cc. 是什么意思啊)这边很不理解,帮我好好解释一下吧,谢谢。
cout<<real<<cc.real<<endl; //为什么在这边输出real和cc.real在显示屏上看不见?要怎样才能在显示屏上看得见呢?
}
complex complex::operator - (const complex &cc)
{
return complex(real-cc.real,imag-cc.imag);
}
complex complex::operator - ()
{
return complex(-real,-imag);
}
complex complex::operator * (const complex &cc)
{
return complex(real*cc.real-imag*cc.imag,real*cc.imag+imag*cc.real);
}
complex complex::operator / (const complex &cc)
{
return complex((real*cc.real+imag+cc.imag)/(cc.real*cc.real+cc.imag*cc.imag),
(imag*cc.real-real*cc.imag)/(cc.real*cc.real+cc.imag*cc.imag));
}
complex & complex ::operator ++ ()
{
cout<<"前置++"<<endl;
real+=1;
imag+=1;
return (*this);
}
complex & complex::operator ++ (int)// 错误(2)重载后置自增长运算符应该与前置运算符的返回值一样,只是多一个int型没有使用的参数
{
cout<<"后置++"<<endl;
complex ctemp=*this;
++(*this);
return ctemp;
}
int main()
{
complex cx1(1.0,2.0),cx2(3.0,4.0),cxres;
cxres=cx1-cx2;
cxres.disp();
cxres=-cx1;
cxres.disp();
cxres=cx1+cx2; //书上说这句等价于cx1.operator-(cx2); 为什么会这样?我也不知道这一句是什么意思,这句的正个调用过程不清楚,帮我详细解释一下,好吗。
cxres.disp();
cxres=cx1*cx2;
cxres.disp();
cxres=cx1/cx2;
cxres.disp();
complex cx3(1.0,1.0),cx4(5.0,5.0);
cxres=++cx3;
cxres.disp();
cx3.disp();
cxres=cx4++;
cxres.disp();
cx4.disp();
return 0;
}
展开
 我来答
zxytcjj
2010-09-06 · TA获得超过358个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:148万
展开全部
complex& operator ++(); //这句为什么要多出一个&符号,是什么意思?
没有实际意义 有效率
return complex(real+cc.real,imag+cc.imag); //为什么一个是real,一个是cc.real,(cc. 是什么意思啊)这边很不理解,帮我好好解释一下吧,谢谢。
cc是传进来的参数啊,这样就实现了+法啊
cout<<real<<cc.real<<endl; //为什么在这边输出real和cc.real在显示屏上看不见?要怎样才能在显示屏上看得见呢?
因为在上文已经return了

至于其他的,自己好好看看书了,这些东西只有你自己弄懂了你才能理解的透彻…… 实在不行就在百度给我留言吧 我应该能看见的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式