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

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