Files
42_INT_09_piscine_cpp/d05/ex02/headers/Form.hpp

47 lines
877 B
C++

#ifndef AFORM_HPP
# define AFORM_HPP
# include "color.h"
# include <iostream>
# include <string>
class Bureaucrat;
# include "Bureaucrat.hpp"
class AForm {
public:
Form( std::string name, int signedGrade, int executeGrade );
Form( Form const & src );
virtual ~Form() = 0;
Form & operator=( Form const & rhs );
std::string getName() const;
bool getSigned() const;
int getSignedGrade() const;
int getExecuteGrade() const;
virtual void beSigned( Bureaucrat const & b ) = 0;
private:
Form();
class GradeTooHighException : public std::exception {
const char * what() const throw();};
class GradeTooLowException : public std::exception {
const char * what() const throw();};
std::string const _name;
bool _signed;
int const _signedGrade;
int const _executeGrade;
};
std::ostream & operator<<(std::ostream & o, Form const & rhs);
#endif