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

  1. // ex09020.cpp
  2. // Multiple inheritance
  3. #include <iostream.h>
  4. #include <string.h>
  5.  
  6.  
  7. // ------ base Time class
  8. class Time {
  9. protected:
  10.     int hours, minutes, seconds;
  11. public:
  12.     Time(int h, int m, int s)
  13.         { hours = h; minutes = m; seconds = s; }
  14.     virtual void display()
  15.         { cout << hours << ':' << minutes << ':' << seconds; }
  16. };
  17.  
  18.  
  19. // ------ base Date class
  20. class Date {
  21. protected:
  22.     int month, day, year;
  23. public:
  24.     Date(int m, int d, int y)
  25.         { month = m; day = d; year = y; }
  26.     virtual void display()
  27.         { cout << month << '/' << day << '/' << year; }
  28. };
  29.  
  30.  
  31. // ------ derived FileStamp class
  32. class FileStamp : public Time, public Date    {
  33. protected:
  34.     char filename[15];
  35. public:
  36.     FileStamp(char *fn, int mm, int dd, int yy,
  37.                         int hr, int mn, int sc)
  38.                 : Time(hr, mn, sc), Date(mm, dd, yy)
  39.         { strcpy(filename, fn); }
  40.     void display();
  41. };
  42.  
  43.  
  44. // ----- the display function for the derived class
  45. void FileStamp::display()
  46. {
  47.     cout << filename << ' ';
  48.     Date::display();
  49.     cout << ' ';
  50.     Time::display();
  51. }
  52.  
  53. main()
  54. {
  55.     FileStamp fs("DATAFILE", 4, 6, 90, 13, 32, 27);
  56.     fs.Date::display();
  57. }
  58.