#include PresidentialPardonForm::PresidentialPardonForm() : AForm("PresidentialPardonForm", 25, 5), target("Arthur Dent") { std::cout << "PresidentialPardonForm default constructor called" << std::endl; } PresidentialPardonForm::PresidentialPardonForm(const PresidentialPardonForm& other) : AForm(other), target(other.target) { std::cout << "PresidentialPardonForm copy constructor called" << std::endl; } PresidentialPardonForm::PresidentialPardonForm(const std::string& target) : AForm("PresidentialPardonForm", 25, 5), target(target) { std::cout << "PresidentialPardonForm (target) constructor called" << std::endl; } void PresidentialPardonForm::executeAction() const { std::cout << target << " has been pardoned by Zaphod Beeblebrox" << std::endl; } const std::string& PresidentialPardonForm::getTarget() const { return target; } PresidentialPardonForm& PresidentialPardonForm::operator=(const PresidentialPardonForm& other) { std::cout << "PresidentialPardonForm assignment operator called" << std::endl; if (this != &other) { AForm::operator=(other); target = other.target; } return *this; } PresidentialPardonForm::~PresidentialPardonForm() { std::cout << "PresidentialPardonForm destructor called" << std::endl; }