您的位置:首页 > 编程语言 > C语言/C++

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

2016-10-11 11:05 239 查看


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 3
3 5
10



Example Output

5+8i
12+3i
12+3i

#include <iostream>
#include <algorithm>
using namespace std;
class com
{
private:
int a,b;
public:
com(int a1=0,int b1=0)
{
a=a1;
b=b1;
}

com operator +(com&t1)
{
return com(a+t1.a,b+t1.b);
}

com operator +(int t1)
{
return com(a+t1,b);
}

friend com operator +(int x,com &y);

friend ostream& operator<<(ostream &out,com t)
{
out<<t.a<<"+"<<t.b<<"i"<<endl;
return out;
}
};

com operator +(int x,com &y)
{
return com(y.a+x,y.b);
}

int main()
{
int a,b,x;
cin>>a>>b;
com t1(a,b);
cin>>a>>b;
com t2(a,b);
cin>>x;

cout<<t1+t2;
cout<<t1+x;
cout<<x+t1;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++