#ifndef PRIORITY_H #define PRIORITY_H #include #include using namespace std ; /* Example Usages of Priority class: Priority p0 ; Priority * p1 = new Priority(Priority::LOW) ; Priority p2 = Priority::MEDIUM ; Priority p3 = Priority::HIGH ; Priority p4 = p3 ; if(p2 == p3) { } ; if(p2 < p3) { } ; if(p2 > p3) { } ; if(p2 <= p3) { } ; if(p2 >= p3) { } ; if(p2 != p3) { } ; if(p2 == Priority::LOW) { } ; if(p2 < Priority::LOW) { } ; if(p2 > Priority::MEDIUM) { } ; if(p2 <= Priority::MEDIUM) { } ; if(p2 >= Priority::HIGH) { } ; if(p2 != Priority::HIGH) { } ; cout << p1 << p2 << p3 << endl ; */ class Priority{ friend ostream & operator<<(ostream & , const Priority & ); friend bool operator==(const Priority&, const int ); friend bool operator!=(const Priority&, const int ) ; friend bool operator<(const Priority&, const int ); friend bool operator<=(const Priority&, const int); friend bool operator>(const Priority&, const int ); friend bool operator>=(const Priority&, const int ); private: int p ; public: static const int HIGH = 2 ; static const int MEDIUM = 1 ; static const int LOW = 0 ; Priority() ; Priority(const int ); Priority(const Priority & ) ; Priority & operator=(const Priority & ); bool operator==(const Priority & ) const; bool operator!=(const Priority & ) const; bool operator<(const Priority & ) const; bool operator<=(const Priority & ) const; bool operator>(const Priority & ) const; bool operator>=(const Priority & ) const; }; #endif