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

来源:互联网 发布:棉柔巾 知乎 编辑:程序博客网 时间:2024/06/01 08:25

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

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

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+3i

Hint

#include<iostream>using namespace std;class Complex{private: int re, im;    public:    Complex(int a=0, int b=0):re(a), im(b){}    friend Complex operator+(Complex &c1, Complex &c2)  // 定义友元类函数    {        return Complex(c1.re+c2.re, c1.im+c2.im);    }    friend Complex operator+(Complex &c1, int i)    {        return Complex(i+c1.re, c1.im);    }    friend Complex operator+(int i, Complex &c2)    {        return Complex(i+c2.re, c2.im);    }    friend Complex &operator<<(ostream &out, Complex &c)    {        if(c.im>0)        cout<<c.re<<"+"<<c.im<<"i"<<endl;        else cout<<c.re<<c.im<<"i"<<endl;    }};int main(){    int x, y, q, w, e;    cin>>x>>y;    Complex c1(x, y);    cin>>q>>w;    Complex c2(q, w), c3;    cin>>e;    c3 = c1 + c2;    cout<<c3;    c3 = c1 + e;    cout<<c3;    c3 = e + c1;    cout<<c3;}

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 购买重疾险的必要性 职业生涯规划必要性 联想g470还有抢救的必要性吗 必要网 六年级必读书 五年级必读书 青少年必读书 初中生必读书 四年级必读书 小学必读书 高中生必读书 读书典故 读书摘录 读书内容 读书文摘 森田正马3本经典必读书 一生必读100本书 历史爱好者必读 提升情商必读10本书 30首必读经典英文诗歌 小学生必读课外书 小学生文言文必读40篇 必圣客 血必净 喷必净 血必净多少钱一支 是划算返利网 re返利 旅游必需品 生活必需品 旅游带的必需品 必需品 云南旅游必需品 生活必需品清单 旅游要带的必需品 旅游必需品清单 基础化妆必需品 生活必需品和高档耐用品 女生旅游三天必需品 旅游需要带什么必需品 泰国旅游需要带什么必需品