#ifndef HEADER_EVENT #define HEADER_EVENT class Event { unsigned startTime; unsigned endTime; protected: void setStartTime(unsigned startTime); void setEndTime(unsigned endTime); public: Event(unsigned startTime, unsigned endTime); virtual bool isHappeningAt(unsigned time) const; virtual Event* clone() const = 0; virtual ~Event() = default; }; #endif