#pragma once #include "Bureaucrat.hpp" class Bureaucrat; class Form { public: class GradeTooHighException : public std::exception { public: char const* what() const throw(); }; class GradeTooLowException : public std::exception { public: char const* what() const throw(); }; Form(); Form(std::string name, int grade, int gradeExec); ~Form(); Form(const Form &form); Form &operator=(const Form &form); std::string getName() const; bool isSigned() const; int getGrade() const; int getGradeExec() const; void beSigned(Bureaucrat &crat); private: const std::string name; bool sign; const int grade; const int gradeExec; }; std::ostream& operator<<(std::ostream& os, Form const& form);