53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#include "PresidentialPardonForm.hpp"
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
#include "AForm.hpp"
|
|
|
|
#include "colors.h"
|
|
|
|
PresidentialPardonForm::PresidentialPardonForm(std::string target)
|
|
: AForm("Presidential Pardon", 25, 5), _target(target)
|
|
{
|
|
std::cout << PRESIDENTIAL_PARDON_FORM PARAMETERIZED_CONSTRUCTOR
|
|
<< std::endl;
|
|
std::cout << PRESIDENTIAL_PARDON_FORM << *this << std::endl;
|
|
}
|
|
|
|
PresidentialPardonForm::~PresidentialPardonForm()
|
|
{
|
|
std::cout << PRESIDENTIAL_PARDON_FORM DESTRUCTOR << std::endl;
|
|
}
|
|
|
|
PresidentialPardonForm::PresidentialPardonForm(
|
|
const PresidentialPardonForm &other)
|
|
: AForm(other), _target(other._target)
|
|
{
|
|
std::cout << PRESIDENTIAL_PARDON_FORM COPY_CONSTRUCTOR << std::endl;
|
|
std::cout << PRESIDENTIAL_PARDON_FORM << *this << std::endl;
|
|
}
|
|
|
|
std::ostream &operator<<(std::ostream &os, const PresidentialPardonForm &form)
|
|
{
|
|
os << form.getName()
|
|
<< " Form: " << (form.getIsSigned() ? "Signed" : "Not Signed")
|
|
<< ", Sign Grade: " << form.getSignGrade()
|
|
<< ", Execute Grade: " << form.getExecuteGrade()
|
|
<< ", Target: " << form.getTarget();
|
|
return os;
|
|
}
|
|
|
|
void PresidentialPardonForm::execute(const Bureaucrat &executor) const
|
|
{
|
|
isExecutable(executor);
|
|
|
|
std::cout << PRESIDENTIAL_PARDON_FORM << executor.getName()
|
|
<< " made shure Zaphod Beeblebrox pardoned " << _target << "."
|
|
<< std::endl;
|
|
}
|
|
|
|
const std::string PresidentialPardonForm::getTarget() const
|
|
{
|
|
return _target;
|
|
} |