Source of testime3.cpp


  1: // Filenme: TESTIME3.CPP
  2: // Purpose: Uses the Time class to compare member, non-member and
  3: //          friend functions.


  6: #include <iostream>
  7: using namespace std;


 10: #include "TIME3.H"
 11: #include "PAUSE.H"


 14: bool EqualTo2(/* in */ const Time& t1,
 15:               /* in */ const Time& t2);


 18: int main()
 19: {
 20:     cout << endl
 21:          << "This program uses the Time class to "
 22:          << "compare member, non-member and friend "   << endl
 23:          << "functions.  You should study the source "
 24:          << "code at the same time as the output. "    << endl << endl;

 26:     Time t1(11, 59, 50);
 27:     Time t2(12, 0, 0);

 29:     t1.Display();  cout << endl;
 30:     t2.Display();  cout << endl;
 31:     Pause(0);

 33:     if (t1.EqualTo1(t2))
 34:         cout << "The two times are equal."     << endl;
 35:     else
 36:         cout << "The two times are not equal." << endl;
 37:     Pause(0);

 39:     while (!EqualTo2(t1, t2))
 40:     {
 41:         t1.Display();  cout << endl;
 42:         t1.Increment();
 43:     }
 44:     Pause(0);

 46:     if (EqualTo3(t1, t2))
 47:         cout << "The two times are equal."     << endl;
 48:     else
 49:         cout << "The two times are not equal." << endl;

 51:     return 0;
 52: }




 57: // Note that the following function is just an "ordinary"
 58: // function (not a member function and not a friend function)
 59: // and hence it must use the "accessor" functions to obtain the
 60: // values of the private data members.
 61: bool EqualTo2(/* in */ const Time& t1,
 62:               /* in */ const Time& t2)
 63: // Pre:  t1 and t2 have been initialized.
 64: // Post: Returns true if t1 and t2 are the same Time value
 65: //       and false otherwise.
 66: {
 67:     return (t1.Hours()   == t2.Hours()    &&
 68:             t1.Minutes() == t2.Minutes()  &&
 69:             t1.Seconds() == t2.Seconds());
 70: }