2015年oj刷题:实现复数类中的加运算符重载【C++运算符重载】

Problem A: 实现复数类中的加运算符重载【C++运算符重载】

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 184   Solved: 122
[ Submit][ Status][ Web Board]

Description

int家有i1和i2弟兄俩,小手一拉i1+i2,加起来了;double家有d1和d2姐妹俩,小手也一拉,d1+d2,也加起来了。C++村子里来了复数(Complex)一家子,也有俩兄弟c1和c2,想要来个累加,笨乎乎地,c1.add(c2)。c1和c2伤心极了,也想像其他小朋友一样,小手一拉,c1+c2,也能加起来。这个任务交给了正在看题的魔术师,帮他们一个忙,让复数也能用+号相加吧。(可以复制提示部分的代码开始你的编程)

Input

四个数,分别代表两个虚数c1和c2的实部和虚部。如输入2.5 3.1 -4.5 0.3,代表两个虚数:c1(2.5+3.1i), c2(-4.5+0.3i)

Output

两个虚数相加的结果,格式(a,bi)形式

Sample Input

2.5 3.1 -4.5 0.3

Sample Output

(-2,3.4i)
#include <iostream>

using namespace std;

class Complex

{

public:
    Complex();
    Complex(double r,double i);
    Complex operator+(Complex &c1);
    void display();

private:

double real;

double imag;

};
Complex::Complex()
{
    real=0;
    imag=0;
}
Complex::Complex(double r,double i)
{
    real=r;
    imag=i;
}
Complex Complex::operator+(Complex &c1)
{
    Complex c;
    c.real=real+c1.real;
    c.imag=imag+c1.imag;
    return c;
}
void Complex::display()
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()

{

double cr1, ci1, cr2, ci2;

cin>>cr1>>ci1>>cr2>>ci2;

Complex c1(cr1, ci1),c2(cr2, ci2),c3;

c3=c1+c2;

c3.display();

return 0;

}
2015年oj刷题:实现复数类中的加运算符重载【C++运算符重载】_第1张图片 2015年oj刷题:实现复数类中的加运算符重载【C++运算符重载】_第2张图片

你可能感兴趣的:(2015年oj刷题:实现复数类中的加运算符重载【C++运算符重载】)