CPP05/ex03/inc/Bureaucrat.hpp

44 lines
1.0 KiB
C++

#pragma once
#include <exception>
#include <iostream>
#include <string>
#define HIGHEST_GRADE 1
#define LOWEST_GRADE 150
class Bureaucrat
{
private:
const std::string _name;
int _grade;
public:
Bureaucrat() = delete;
Bureaucrat(std::string name, int grade);
Bureaucrat(Bureaucrat &other);
~Bureaucrat();
Bureaucrat &operator=(Bureaucrat &other) = delete;
Bureaucrat &operator++(); // Pre-increment
Bureaucrat operator++(int); // Post-increment
Bureaucrat &operator--(); // Pre-decrement
Bureaucrat operator--(int); // Post-decrement
int getGrade() const;
const std::string getName() const;
void signForm(class AForm &form);
class GradeTooHighException : public std::exception
{
const char *what() const throw();
};
class GradeTooLowException : public std::exception
{
const char *what() const throw();
};
};
std::ostream &operator<<(std::ostream &os, const Bureaucrat &bureaucrat);