【问题描述】
请定义一个复数类,将+/-运算符重载为成员函数,实现复数与复数的加减及复数与浮点数的加减。
请根据给定的main函数,设计Complex类。
【样例输出】
a+b=4+3i
a-b=2+5i
a+100=103+4i
a-2.5=0.5+4i
【C++代码】
#include <iostream>
using namespace std;
class Complex
{
private:
double real;
double imag;
public:
Complex(double r=0.0, double i=0.0) : real(r),imag(i){};
Complex operator + (Complex &b1);
Complex operator + (double b1);
Complex operator - (Complex &b2);
Complex operator - (double b2);
void print()
{
cout<<real<<"+"<<imag<<"i"<<endl;
};
};
Complex Complex :: operator + (Complex &b1)
{
Complex x;
x.real = real + b1.real;
x.imag = imag + b1.imag;
return x;
}
Complex Complex :: operator + (double b1)
{
Complex x;
x.real = real + b1;
x.imag = imag;
return x;
}
Complex Complex :: operator - (Complex &b2)
{
Complex x;
x.real = real - b2.real;
x.imag = imag - b2.imag;
return x;
}
Complex Complex :: operator - (double b2)
{
Complex x;
x.real = real - b2;
x.imag = imag ;
return x;
};
int main()
{
Complex a(3,4),b(1,-1),c;
c=a+b;
cout<<"a+b=";
c.print();
cout<<endl;
c=a-b;
cout<<"a-b=";
c.print();
cout<<endl;
c=a+100;
cout<<"a+100=";
c.print();
cout<<endl;
c=a-2.5;
cout<<"a-2.5=";
c.print();
cout<<endl;
return 0;
}