面向对象程序设计上机练习十(运算符重载)

来源:互联网 发布:赫鲁晓夫 秘密报告知乎 编辑:程序博客网 时间:2024/06/01 08:47


面向对象程序设计上机练习十(运算符重载)

Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic

Problem Description

定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2、i+c1、c1+i均合法。(其中i是整数,c1、c2是复数),编程实现求2个复数之和、整数与复数之和。

Input

输入有三行:第1行是第1个复数c1的实部和虚部,以空格分开。第2行是第2个复数c2的实部和虚部,以空格分开。第3行是1个整数i的值。

Output

输出有三行:
第1行是2个复数c1和c2的和,显示方式:实部+虚部i
第2行是第1个复数c1加i的值,显示方式:实部+虚部i
第3行是i加第1个复数c1的值,显示方式:实部+虚部i

Example Input

2 33 510

Example Output

5+8i12+3i12+3i01

#include<iostream>


02using namespace std;
03class Complax
04{
05    public:
06        Complax(intr = 0,int i = 0)
07        {
08            real = r;
09            imag = i;
10        }
11        Complax complax_add(Complax &b);
12        voiddisplay();
13    private:
14        intreal;
15        intimag;
16};
17void Complax::display()
18{
19    if(imag > 0)
20        cout <<real<<"+"<<imag<<"i"<<endl;
21    else
22        cout <<real<<imag<<"i"<<endl;
23}
24Complax Complax::complax_add(Complax &b)
25{
26    Complax x;
27    x.real = real + b.real;
28    x.imag = imag + b.imag;
29    returnx;
30}
31int main()
32{
33    intd1,d2,d3,d4,d5;
34    cin >>d1>>d2>>d3>>d4>>d5;
35    Complax a(d1,d2),b(d3,d4),c1(d5),c2,c3,c4;
36    c2 = a.complax_add(b);
37    c3 = a.complax_add(c1);
38    c4 = a.complax_add(c1);
39    c2.display();
40    c3.display();
41    c4.display();
42    return0;
43}
0 0