home *** CD-ROM | disk | FTP | other *** search
/ C++ for Dummies (3rd Edition) / C_FD.iso / CHAP21 / CHAP21_1.CPP next >
C/C++ Source or Header  |  1996-09-02  |  1KB  |  56 lines

  1. // Chap21_1.cpp
  2. class USDollar
  3. {
  4.    friend USDollar operator+(USDollar&, USDollar&);
  5.    friend USDollar& operator++(USDollar&);
  6.   public:
  7.    USDollar(unsigned int d, unsigned int c);
  8.   protected:
  9.    unsigned int dollars;
  10.    unsigned int cents;
  11. };
  12.  
  13. USDollar::USDollar(unsigned int d, unsigned int c)
  14.  
  15. {
  16.    dollars = d;
  17.    cents = c;
  18.    while (cents >= 100) {
  19.       dollars++;
  20.       cents -= 100;
  21.    }
  22. }
  23.  
  24. //operator+ - add s1 to s2 and return the result
  25. //            in a new object
  26. USDollar operator+(USDollar& s1, USDollar& s2)
  27. {
  28.    unsigned int cents   = s1.cents   + s2.cents;
  29.    unsigned int dollars = s1.dollars + s2.dollars;
  30.    USDollar d(dollars, cents);
  31.    return d;
  32. }
  33.  
  34. //operator++ - increment the specified argument;
  35. //             change the value of the provided object
  36. USDollar& operator++(USDollar& s)
  37. {
  38.    s.cents++;
  39.    if (s.cents >= 100)
  40.    {
  41.       s.cents -= 100;
  42.       s.dollars++;
  43.    }
  44.    return s;
  45. }
  46.  
  47. int main()
  48. {
  49.    USDollar d1(1, 60);
  50.    USDollar d2(2, 50);
  51.    USDollar d3(0, 0);
  52.    d3 = d1 + d2;    //overloaded operators are straightforward in use
  53.    ++d3;
  54.    return 0;
  55. }
  56.