/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Bureaucrat.hpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: mmoussou #include #include #include #include void _log(std::string emoji, std::string what, std::string who, std::string str); class Form; typedef unsigned char uint8_t; #define MAXGRADE 1 #define MINGRADE 150 class Bureaucrat { public: Bureaucrat(void); Bureaucrat(const Bureaucrat &cpy); Bureaucrat(std::string name, uint8_t grade); ~Bureaucrat(void); Bureaucrat &operator=(const Bureaucrat& other); const std::string &getName(void) const; uint8_t getGrade(void) const; void IncrementGrade(void); void DecrementGrade(void); class GradeTooHighException : public std::exception { public: virtual const char *what() const throw(); }; class GradeTooLowException : public std::exception { public: virtual const char *what() const throw(); }; private: std::string _name; uint8_t _grade; }; std::ostream &operator<<(std::ostream &, Bureaucrat &);