home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / cdactual / demobin / share / program / C / ANSICPP.ZIP / EX07006.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-24  |  571 b   |  31 lines

  1. // ex07006.cpp
  2. // Conversion member function
  3. #include <iostream.h>
  4.  
  5. class Date {
  6.     int mo, da, yr;
  7. public:
  8.     Date(int m, int d, int y) { mo = m; da = d; yr = y; }
  9.     operator long();    // member conversion function
  10. };
  11.  
  12. // ---- the member conversion function
  13. Date::operator long()
  14. {
  15.     static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
  16.     long days = yr;
  17.     days *= 365;
  18.     days += yr / 4;
  19.     for (int i = 0; i < mo-1; i++)
  20.         days += dys[i];
  21.     days += da;
  22.     return days;
  23. }
  24.  
  25. main()
  26. {
  27.     Date xmas(12, 25, 89);
  28.     long since = xmas;
  29.     cout << '\n' << since;
  30. }
  31.