// IMPLEMENTATION FILE (exttime.cpp) // This file implements the ExtTime member functions. // The Time class is a public base class of ExtTime #include "exttime.h" #include #include using namespace std; // Additional private members of class: ZoneType zone; //****************************************************************** ExtTime::ExtTime( /* in */ int initHrs, /* in */ int initMins, /* in */ int initSecs, /* in */ ZoneType initZone ) : Time(initHrs, initMins, initSecs) // Constructor // Precondition: // 0 <= initHrs <= 23 && 0 <= initMins <= 59 // && 0 <= initSecs <= 59 && initZone is assigned // Postcondition: // Time is set according to initHrs, initMins, and initSecs // (via call to base class constructor) // && zone == initZone { zone = initZone; } //****************************************************************** ExtTime::ExtTime() // Default constructor // Postcondition: // Time is set via implicit call to base class's // default constructor && zone == EST { zone = EST; } //**************************************************************** ZoneType ExtTime::Zone() const // Postcondition: // Return value == zone { return zone; } //****************************************************************** void ExtTime::Set( /* in */ int hours, /* in */ int minutes, /* in */ int seconds, /* in */ ZoneType timeZone ) // Precondition: // 0 <= hours <= 23 && 0 <= minutes <= 59 // && 0 <= seconds <= 59 && timeZone is assigned // Postcondition: // Time is set to hours, minutes, and seconds && zone == timeZone { Time::Set(hours, minutes, seconds); zone = timeZone; } //****************************************************************** void ExtTime::Write() const // Postcondition: // Time has been output in the form HH:MM:SS ZZZ, ZZZ is the time zone { static string zoneString[8] = { "EST", "CST", "MST", "PST", "EDT", "CDT", "MDT", "PDT" }; Time::Write(); cout << ' ' << zoneString[zone]; }