复数类
定义一个复数类Complex,复数的实部real和虚部image定义为类的私有数据成员。成员函数均为公有,其中input()函数给实部和虚部赋值,output()函数按照“实部,虚部i”的格式输出复数,add()函数实现两个复数的相加。设计一个友元函数sub()实现两个复数的相减。主函数中定义若干对象,通过调用成员函数和友元函数,完成两个复数的相加和相减。
输入共有两行,每行两个整数,中间用空格隔开,代表两个复数。其中,前一个数是实部,后一个数是虚部。
输出共有两行,每行按照“实部,虚部i”的格式,逗号为英文逗号,不要输出引号。第一行是相加后的复数,第二行是相减后的复数,行尾输出换行。
输入
2 -1
3 1
输出
5,0i
-1,-2i
//复数类
#include<iostream>
#include<cmath>
using namespace std;
class Complex
{
private:
int real;
int image;
public:
void input()
{
cin>>real>>image;
}
void output()
{
cout<<real<<","<<image<<"i"<<endl;
}
void add(Complex,Complex);
friend void sub(Complex,Complex,Complex *);
};
void Complex::add(Complex a,Complex b)
{
real=a.real+b.real;
image=a.image+b.image;
}
void sub(Complex a,Complex b,Complex *c)
{
c->real=a.real-b.real;
c->image=a.image-b.image;
}
int main(void)
{
Complex a1,a2,a3,a4;
a1.input();
a2.input();
a3.add(a1,a2);
sub(a1,a2,&a4);
a3.output();
a4.output();
return 0;
}