home *** CD-ROM | disk | FTP | other *** search
/ C++ for Dummies (3rd Edition) / C_FD.iso / CHAP23 / CHAP23_1.CPP next >
C/C++ Source or Header  |  1996-09-02  |  884b  |  45 lines

  1. // Chap23_1.cpp
  2. #include <iostream.h>
  3. #include <iomanip.h>
  4. class USDollar
  5. {
  6.   public:
  7.    USDollar(double v = 0.0)
  8.    {
  9.       dollars = v;
  10.       cents = int((v - dollars) * 100.0 + 0.5);
  11.    }
  12.    operator double()
  13.    {
  14.       return dollars + cents / 100.0;
  15.    }
  16.    void display(ostream& out)
  17.    {
  18.       out << '$' << dollars << '.'
  19.           //set fill to 0Æs for cents
  20.           << setfill('0') << setw(2) << cents
  21.           //now put it back to spaces
  22.           << setfill(' ');
  23.    }
  24.  
  25.   protected:
  26.    unsigned int dollars;
  27.    unsigned int cents;
  28. };
  29.  
  30. //operator<< - overload the inserter for our class
  31. ostream& operator<< (ostream& o, USDollar& d)
  32. {
  33.    d.display(o);
  34.    return o;
  35. }
  36.  
  37. int main()
  38. {
  39.    USDollar usd(1.50);
  40.    cout << "Initially usd = " << usd << "\n";
  41.    usd = 2.0 * usd;
  42.    cout << "then usd = " << usd << "\n";
  43.    return 0;
  44. }
  45.