#ifndef ATARGET_HPP # define ATARGET_HPP # include # include class ASpell; class ATarget { private: std::string type; public: ATarget() {}; ATarget(ATarget const & other) { *this = other; }; ATarget & operator=(ATarget const & other) { this->type = other.type; return (*this); }; ATarget(std::string const & type) { this->type = type; }; ~ATarget() {}; std::string const & getType() const { return (this->type); }; void getHitBySpell(ASpell const & aspell) const; virtual ATarget * clone() const = 0; }; #include "ASpell.hpp" #endif