home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / CTECHAPP.ZIP / CLASSES.ZIP / CP_ASOP.CPP < prev    next >
C/C++ Source or Header  |  1990-01-28  |  1KB  |  55 lines

  1. //  Module:     Cp_asop
  2. //  Version:    2.20
  3. //
  4. //  Language:   C++ 2.0
  5. //  Environ:    Any
  6. //
  7. //  Purpose:    Assignment operators for Complex objects
  8. //
  9. //  Written by: Scott Robert Ladd
  10.  
  11. #include "Complex.hpp"
  12.  
  13. Complex Complex::operator += (const Complex & c)
  14.     {
  15.     Real += c.Real;
  16.     Imag += c.Imag;
  17.  
  18.     return *this;
  19.     }
  20.  
  21. Complex Complex::operator -= (const Complex & c)
  22.     {
  23.     Real -= c.Real;
  24.     Imag -= c.Imag;
  25.  
  26.     return *this;
  27.     }
  28.  
  29. Complex Complex::operator *= (const Complex & c)
  30.     {
  31.     double OldReal = Real; // save old Real value
  32.  
  33.     Real = (Real * c.Real) - (Imag * c.Imag);
  34.     Imag = (OldReal * c.Imag) + (Imag * c.Real);
  35.  
  36.     return *this;
  37.     }
  38.  
  39. Complex Complex::operator /= (const Complex & c)
  40.     {
  41.     double den = norm(c);
  42.  
  43.     if (den != 0.0)
  44.         {
  45.         double OldReal = Real;
  46.  
  47.         Real = (Real * c.Real + Imag * c.Imag) / den;
  48.         Imag = (Imag * c.Real - OldReal * c.Imag) / den;
  49.         }
  50.     else
  51.         Complex::ErrorHandler();
  52.  
  53.     return *this;
  54.     }
  55.