home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / m / m003_1 / sb_bc.ddi / BC / CH4 / PROG4-2.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-10  |  917 b   |  63 lines

  1. //  PROG4-2.CPP
  2.  
  3. //   C++ operator overloading
  4.  
  5. #include<stdio.h>
  6.  
  7. struct complex
  8. { double real ;
  9.   double imag ;
  10. } ;
  11.  
  12.  
  13. complex ComplexSet(double r, double i)
  14. { complex temp ;
  15.  
  16.   temp.real = r ;
  17.   temp.imag = i ;
  18.  
  19.   return temp ;
  20. }
  21.  
  22.  
  23. complex operator + (complex c1, complex c2)
  24. { complex temp ;
  25.  
  26.   temp.real = c1.real + c2.real ;
  27.   temp.imag = c1.imag + c2.imag ;
  28.  
  29.   return temp ;
  30. }
  31.  
  32.  
  33. complex operator - (complex c1, complex c2)
  34. { complex temp ;
  35.  
  36.   temp.real = c1.real - c2.real ;
  37.   temp.imag = c1.imag - c2.imag ;
  38.  
  39.   return temp ;
  40. }
  41.  
  42.  
  43. void ComplexPrint(complex c)
  44. {
  45.   printf("%g + %g i", c.real, c.imag) ;
  46. }
  47.  
  48.  
  49. int main()
  50. { complex a,b,c,d ;
  51.  
  52.   a = ComplexSet(1.0, 2.0) ;
  53.   b = ComplexSet(3.0, 4.0) ;
  54.  
  55.   c = a + b ;
  56.   printf("c = ") ; ComplexPrint(c) ; printf("\n") ;
  57.  
  58.   d = a + b - c ;
  59.   printf("d = ") ; ComplexPrint(d) ; printf("\n") ;
  60.  
  61.   return 0 ;
  62. }
  63.