复数的四则与运算(成员函数的重载)

  • 格式:doc
  • 大小:27.50 KB
  • 文档页数:6

//重载复数的四则运算程序

#include

class complex

{

private:

fioat r; fioat i;

public:

complex(){}

void input()

{ cin >>r>>i;}

void output();

complex operator+(complex t);

complex operator-(complex t);

complex operator*(complex t);

complex operator/(complex t);

};

//输出复数

void complex::output()

{

if(i>0)

cout<

cout<

else

cout<

}

//复数+操作符的重载

complex complex::operator+(complex t)

{

complex z;

z.r = r+t.r;

z.i = i+t.i;

return z;

}

//复数-操作符的重载

complex complex::operator-(complex t)

{

complex z;

z.r = r-t.r;

z.i = i-t.i;

return z;

}

//复数*操作符的重载 complex complex::operator*(complex t)

{

complex z;

z.r = r*t.r-i*t.i;

z.i =i*t.r+r*t.i;

return z;

}

//复数/操作符的重载

complex complex::operator/(complex t)

{

complex z;

if(t.i==0&&t.i==0)

cout<<"除数不可以是0"<

else

{

z.r = (r*t.r+i*t.i)/(t.r*t.r+t.i*t.i);

z.i = (i*t.r-r*t.i)/(t.r*t.r+t.i*t.i);

}

return z; }

# include

# include"complex.h"

int main()

{ complex a,b,c;

a.input();

b.input();

cout << "两个源操作数是:"<

a.output();

b.output();

cout << "两个数相加为:"<

c = a+b;

c.output();

cout << "两个数相减为:"<

c = a-b;

c.output();

cout << "两个数相乘为:"<

c= a*b;

c.output();

cout << "两个数相除为:"<

c = a/b;

c.output();

return 0;