Files
42_SIDE_exam_05_cpp/cpp_module_02/ASpell.hpp
2022-12-12 22:34:11 +01:00

55 lines
782 B
C++

#ifndef ASPELL_HPP
#define ASPELL_HPP
#include <iostream>
#include <string>
class ATarget;
class ASpell
{
protected:
std::string name;
std::string effects;
public:
ASpell()
{}
ASpell(ASpell const & other)
{
*this = other;
}
ASpell & operator=(ASpell const & other)
{
this->name = other.name;
this->effects = other.effects;
return *this;
}
ASpell(std::string const & name, std::string const & effects)
{
this->name = name;
this->effects = effects;
}
virtual ~ASpell()
{}
std::string const & getName() const
{
return this->name;
}
std::string const & getEffects() const
{
return this->effects;
}
void launch(ATarget const &) const;
virtual ASpell * clone() const = 0;
};
#include "ATarget.hpp"
#endif