题目内容:
定义一个复数类,并重载加法运算符(+)和赋值运算符(=)以适用对复数运算的要求。
输入格式:
依次输入两个复数的实部和虚部
输出格式:
先按照要求格式输出两个复数,然后输出这两个复数的和
输入样例:
1 2
3 4
输出样例:
1+j2
3+j4
4+j6
时间限制:500ms内存限制:32000kb
#include<iostream>
using namespace std;
class Complex
{
double real,imag;
public:
Complex(double r=0,double i=0):real(r),imag(i){}
double Real(){return real;}
double Imag(){return imag;}
Complex operator +(Complex&);
//返回类型为complex对象,加号右边是complex对象地址时调用此重载函数
Complex operator +(double);
//返回类型为Complex对象,加号右边是double型时调用此重载函数
bool operator ==(Complex);//判断相等
~Complex(){};
};
Complex Complex::operator +(Complex &c) //重载运算符+,两边是虚数对象
{
Complex temp;
temp.real=real+c.real;
temp.imag=imag+c.imag;
return temp;
}
Complex Complex::operator +(double d) //重载运算符+,左边是Complex对象,右边是double型
{
Complex temp;
temp.real=real+d;
temp.imag=imag;
return temp;
}
bool Complex::operator ==(Complex c) //重载运算符==
{
if(real==c.real&&imag==c.imag)
return true;
else
return false;
}
int main()
{
double a,b;
cin>>a>>b;
Complex c1(a,b);
cin>>a>>b;
Complex c2(a,b);
cout<<c1.Real()<<"+j"<<c1.Imag()<<endl;
cout<<c2.Real()<<"+j"<<c2.Imag()<<endl;
Complex c3;
c3=c1+c2;
cout<<c3.Real()<<"+j"<<c3.Imag()<<endl;
return 0;
}