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

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

时间: 1ms        内存:128M

描述:

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

输入:

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

输出:

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

示例输入:

2.5 3.1 -4.5 0.3

示例输出:

(-2,3.4i)

提示:

参考答案(内存最优[1092]):

#include <stdio.h>
int main()
{
    double a,b,c,d;
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    printf("(%g,%gi)\n",a+c,b+d);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
class Complex
{
public:
    Complex()
    {
        real=0;
        imag=0;
    }
    Complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    Complex operator+(Complex &c2);
    void display();
private:
    double real;
    double imag;
};

Complex Complex::operator+(Complex &c2)
{
    Complex c;
    c.real=real+c2.real;
    c.imag=imag+c2.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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注