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

  1. // ex07010.cpp
  2. // Conversion in an expression
  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 today(2, 12, 90);
  28.     const long ott = 123;
  29.     long sum = ott + today;        // today is converted to long
  30.     cout << ott << " + " << (long) today << " = " << sum;
  31. }
  32.