c++重载运算符

来源:互联网 发布:2017淘宝宝贝数量限制 编辑:程序博客网 时间:2024/05/19 00:43

#include
using namespace std;
classfun    //复数加法 减法 乘法 除法的类(函数重载)
{
public:
 fun()
 {real=0;imag=0;}
 fun(double r,double i)
 {
  real=r;
  imag=i;
 }
 friend fun operator +(fun &,fun&);
 friend fun operator -(fun &,fun&);
 friend fun operator *(fun &,fun&);
 friend fun operator /(fun &,fun&);
 void show()
 {
  printf("%.2lf+%.2lfi\n",real,imag);
 }
protected:
 double real;
 double imag;
};
void pp(int);
using namespace std;

fun operator +(fun &t1,fun&t2)
{
 returnfun(t1.real+t2.real,t1.imag+t2.imag);
}
fun operator -(fun &t1,fun&t2)
{
 returnfun(t1.real-t2.real,t1.imag-t2.imag);
}
fun operator *(fun &t1,fun&t2)
{
 return fun(t1.real * t2.real - t1.imag *t2.imag,t1.real * t2.imag + t1.imag*t2.real);
}
fun operator /(fun &t1,fun&t2)
{
 fun temp=t1+t2;
 double c=t2.imag*t2.imag+t2.real*t2.real;
 temp.real/=c;
 temp.imag/=c;
 return temp;
}
void pp(int f)
{
 double a,b,c,d;
 if(f==1)
 {
  printf("输入第一个复数的实部:");
  cin>>a;
  printf("输入第一个复数的虚部:");
  cin>>b;
  printf("输入第二个复数的实部:");
  cin>>c;
  printf("输入第二个复数的虚部:");
  cin>>d;
  fun t1(a,b),t2(c,d);
  fun t3=t1+t2;
  t3.show();
  cout<<endl;
  system("pause");
 }
 else if(f==2)
  {
  printf("输入第一个复数的实部:");
  cin>>a;
  printf("输入第一个复数的虚部:");
  cin>>b;
  printf("输入第二个复数的实部:");
  cin>>c;
  printf("输入第二个复数的虚部:");
  cin>>d;
  fun t1(a,b),t2(c,d);
  fun t3=t1-t2;
  t3.show();
  cout<<endl;
  system("pause");
 }
 else if(f==3)
  {
  printf("输入第一个复数的实部:");
  cin>>a;
  printf("输入第一个复数的虚部:");
  cin>>b;
  printf("输入第二个复数的实部:");
  cin>>c;
  printf("输入第二个复数的虚部:");
  cin>>d;
  fun t1(a,b),t2(c,d);
  fun t3=t1*t2;
  t3.show();
  cout<<endl;
  system("pause");
 }
 else if(f==4)
  {
  printf("输入第一个复数的实部:");
  cin>>a;
  printf("输入第一个复数的虚部:");
  cin>>b;
  printf("输入第二个复数的实部:");
  cin>>c;
  printf("输入第二个复数的虚部:");
  cin>>d;
  fun t1(a,b),t2(c,d);
  fun t3=t1/t2;
  t3.show();
  cout<<endl;
  system("pause");
 }
}
int main()
{
 int i;
 while(1)
 {
  system("CLS");
  cout<<"复数计算\n1:加法\n2:减法\n3:乘法\n4:除法\n5:退出\n";
  cin>>i;
  if(i==1)
   pp(1);
  else if(i==2)
   pp(2);
  else if(i==3)
   pp(3);
  else if(i==4)
   pp(4);
  else
   exit(1);
 }
 return 0;
}

原创粉丝点击