重载的问题怎么解决?

allday111 2009-04-05 01:42:52
关于复数的运算符重载,谢谢

#include <iostream.h>
class Complex
{
private:
double real;
double imag;
public:
Complex (double r=0,double m=0)
{
real=r;
imag=m;
}
friend Complex operator +(const Complex &a,const Complex &b);
friend Complex operator -(const Complex &a,const Complex &b);
friend Complex operator ++(const Complex &a);
Complex operator *(const Complex &a,const Complex &b);
Complex operator /(const Complex &a,const Complex &b);
Complex operator ++(const Complex &a,int);
void print();
};
void Complex::print()
{
cout<<real;
if(imag!=0)
{
if(imag!=0)cout<<"+";
cout<<imag<<"i";
}
cout<<endl;
}
Complex operator +(const Complex &a,const Complex &b)
{
Complex temp;
temp.real=a.real+b.real;
temp.imag=a.imag+b.imag;
return temp;
}
Complex operator -(const Complex &a,const Complex &b)
{
Complex temp;
temp.real=a.real-b.real;
temp.imag=a.imag-b.imag;
return temp;
}
Complex operator ++(const Complex &a)
{
++a.real;
++a.imag;
return a;
}
Complex Complex::operator *(const Complex &a,const Complex &b)
{
Complex temp;
temp.real=a.real*b.real-a.imag*b.imag;
temp.imag=a.real*b.imag+a.imag*b.real;
retrn temp;
}
Complex Complex::operator /(const Complex &a,const Complex &b)
{
Complex temp;
temp.real=(a.real*b.real+a.imag*b.imag)/(b.real*b.real+b.imag*b.imag);
temp.imag=(a.imag*b.real-a.real*b.imag)/(b.real*b.real+b.imag*b.imag);
return temp;
}
Complex Complex::operator ++(const Complex &a,int)
{
Complex temp(a);
a.real++;
a.imag++;
return temp;
}
void main()
{
Complex a1(2.3,4.6),a2(3.6,2.8);
Complex a3,a4,a5,a6;
a3=a1+a2;
a4=a1-a2;
a5=a1*a2;
a6=a1/a2;
cout<<"a1=";
a1.print();
cout<<endl<<"a2=";
a2.print();
cout<<endl<<"a3=a1+a2=";
a3.print();
cout<<endl<<"a4=a1-a2=";
a4.print();
cout<<endl<<"a5=a1*a2=";
a5.print();
cout<<endl<<"a6=a1/a2=";
a6.print();
a3=++a1;
cout<<endl<<"after a3=++a1";
cout<<"a1=";
a1.print();
cout<<"a3=";
a3.print();
a4=a2++;
cout<<endl<<"after a4=a2++";
cout<<"a2=";
a2.print();
cout<<"a4=";
a4.print();
}
...全文
112 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧