diff options
Added my work from today's exam
1 files changed, 28 insertions, 0 deletions
| -rw-r--r-- | Year 1/Object-oriented Programming/Exam 2/ex2/EventWithIntermission.cpp | 28 |
diff --git a/Year 1/Object-oriented Programming/Exam 2/ex2/EventWithIntermission.cpp b/Year 1/Object-oriented Programming/Exam 2/ex2/EventWithIntermission.cpp new file mode 100644 index 0000000..2681b71 --- /dev/null +++ b/Year 1/Object-oriented Programming/Exam 2/ex2/EventWithIntermission.cpp @@ -0,0 +1,28 @@ +#include "EventWithIntermission.h" +#include <iostream> + +EventWithIntermission::EventWithIntermission(unsigned startTime, unsigned endTime, unsigned intermissionStart, unsigned intermissionEnd) : Event(0, 0) { + this->intermissionStart = this->intermissionEnd = 0; + + if (endTime - startTime <= 360) { + Event::setStartTime(startTime); + Event::setEndTime(endTime); + } + else + std::cout << "Event cannot last for more than 6 hours (360 minutes)!" << std::endl; + + if (intermissionEnd - intermissionStart >= 30 && intermissionEnd - intermissionStart <= 60) { + this->intermissionStart = intermissionStart; + this->intermissionEnd = intermissionEnd; + } + else + std::cout << "Event intermission must last between 30 and 60 minutes!" << std::endl; +} + +bool EventWithIntermission::isHappeningAt(unsigned time) const { + return (time < intermissionStart || time > intermissionEnd) && Event::isHappeningAt(time); +} + +EventWithIntermission* EventWithIntermission::clone() const { + return new EventWithIntermission(*this); +} |
