1: /** @file timevector.cpp */ 3: #include <iostream> 4: #include <typeinfo> 5: using namespace std; 7: #include "utilities.h" 8: using Scobey::Pause; 9: using Scobey::RandomGenerator; 11: #include "time.h" 12: #include "zonetime.h" 14: int main() 15: { 16: cout << "\nThis program first creates a vector of pointers to " 17: "randomly created times, each\nof which is either a Time object, " 18: "or a ZoneTime object, and then displays each\nof these times.\n"; 19: Pause(); 21: RandomGenerator g; 22: vector<Time*> v; 23: Time* timePtr; 25: int numberOfTimes = g.getNextInt(3, 7); 26: cout << "\nThe number of times generated will be " 27: << numberOfTimes << ".\n"; 28: Pause(); 30: for (int i=1; i<=numberOfTimes; i++) 31: { 32: if (g.getNextInt(0, 1) == 1) 33: { 34: timePtr = new Time(g.getNextInt(0, 23), 35: g.getNextInt(0, 59), 36: g.getNextInt(0, 59)); 37: v.push_back(timePtr); 38: } 39: else 40: { 41: timePtr = new ZoneTime(g.getNextInt(0, 23), 42: g.getNextInt(0, 59), 43: g.getNextInt(0, 59), 44: (ZoneType)g.getNextInt(0, 7)); 45: v.push_back(timePtr); 46: } 47: } 49: cout << "\nNow we display the " << v.size() << " times.\n"; 50: Pause(); 51: vector<Time*>::size_type index; 52: for (index=0; index<v.size(); index++) 53: { 54: v.at(index)->display(); 55: cout << endl; 56: } 57: Pause(); 59: cout << "Finally, we return the storage for the time values " 60: "to the heap.\n"; 61: Pause(); 62: for (index=0; index<v.size(); index++) 63: delete v.at(index); 64: }