// Get/set methods #include using namespace std; class Time { public: Time() : Time(99, 99) {} Time(int h) : Time(h, 0) {} Time(int h, int m) : hours_(h), minutes_(m) {} void read(istream& in = cin); void print(ostream& out = cout) const; bool less_than(const Time& t) const; int hours() const { return hours_; } int minutes() const { return minutes_; } void set_hours(int new_hours) { hours_ = new_hours; } void set_minutes(int new_minutes) { minutes_ = new_minutes; } void set(int new_hours, int new_minutes = 0); private: int hours_; int minutes_; }; inline void Time::read(istream& in) { in >> hours_; in.get(); // colon in >> minutes_; } void Time::print(ostream& out) const { out << hours_ << ':'; if (minutes_ < 10) { out << 0; } out << minutes_; } inline bool Time::less_than(const Time& t) const { return (hours_ < t.hours_) || (hours_ == t.hours_ && minutes_ < t.minutes_); } inline void Time::set(int new_hours, int new_minutes) { hours_ = new_hours; minutes_ = new_minutes; } inline void println(const Time& t, ostream & out = cout) { t.print(out); out << endl; } void print_with_h(const Time& t, ostream & out = cout) { out << t.hours() << 'h'; if (t.minutes() < 10) { out << '0'; } out << t.minutes(); } // Test driver for Time int main() { Time t(12,41); print_with_h(t); cout << endl; // t = Time(t.hours(), 45); // t = {t.hours(), 45}; t.set_minutes(45); println(t); t.set_hours(13); println(t); t.set(11,30); println(t); t.set(12); println(t); return 0; }