实现复数类中的运算符重载

来源:互联网 发布:北京棉花检验数据平台 编辑:程序博客网 时间:2024/05/18 22:16

/*
 *copyright(c) 2014,烟台大学计算机学院
 *All rights reserved
 *文件名称:test.cpp
 *作者:吴雨凡
 *版本:v6.0
 *
 *问题描述:实现复数类中的运算符重载

 *输入描述:
 *程序输出:判断相关问题
*/

  1. #include <iostream>  
  2. using namespace std;  
  3. class Complex  
  4. {  
  5. public:  
  6.     Complex(){real=0;imag=0;}  
  7.     Complex(double r,double i){real=r; imag=i;}  
  8.     Complex operator+(const Complex &c2);  
  9.     Complex operator-(const Complex &c2);  
  10.     Complex operator*(const Complex &c2);  
  11.     Complex operator/(const Complex &c2);  
  12.     void display();  
  13. private:  
  14.     double real;  
  15.     double imag;  
  16. };  


  17. Complex Complex::operator+(const Complex &c2)  
  18. {  
  19.     Complex c;  
  20.     c.real=real+c2.real;  
  21.     c.imag=imag+c2.imag;  
  22.     return c;  
  23. }  
  24.  
  25. Complex Complex::operator-(const Complex &c2)  
  26. {  
  27.     Complex c;  
  28.     c.real=real-c2.real;  
  29.     c.imag=imag-c2.imag;  
  30.     return c;  
  31. }  

  32. Complex Complex::operator*(const Complex &c2)  
  33. {  
  34.     Complex c;  
  35.     c.real=real*c2.real-imag*c2.imag;  
  36.     c.imag=imag*c2.real+real*c2.imag;  
  37.     return c;  
  38. }  
  39.   

  40. Complex Complex::operator/(const Complex &c2)  
  41. {  
  42.     Complex c;  
  43.     c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);  
  44.     c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);  
  45.     return c;  
  46. }  
  47.   
  48. void Complex::display()  
  49. {  
  50.     cout<<"("<<real<<","<<imag<<"i)"<<endl;  
  51. }  

  52. int main()  
  53. {  
  54.     Complex c1(3,4),c2(5,-10),c3;  
  55.     cout<<"c1=";  
  56.     c1.display();  
  57.     cout<<"c2=";  
  58.     c2.display();  
  59.     c3=c1+c2;  
  60.     cout<<"c1+c2=";  
  61.     c3.display();  
  62.     c3=c1-c2;  
  63.     cout<<"c1-c2=";  
  64.     c3.display();  
  65.     c3=c1*c2;  
  66.     cout<<"c1*c2=";  
  67.     c3.display();  
  68.     c3=c1/c2;  
  69.     cout<<"c1/c2=";  
  70.     c3.display();  
  71.     return 0;  
  72. }  

0 0
原创粉丝点击