AMateria.hpp
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* AMateria.hpp :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: gychoi <gychoi@student.42seoul.kr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2023/08/17 22:00:08 by gychoi #+# #+# */ 9 /* Updated: 2023/08/17 22:11:13 by gychoi ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #pragma once 14 #ifndef __AMATERIA_HPP__ 15 # define __AMATERIA_HPP__ 16 # include <string> 17 18 class ICharacter; 19 20 class AMateria 21 { 22 protected: 23 std::string type; 24 25 public: 26 AMateria(void); 27 virtual ~AMateria(void); 28 AMateria(std::string const& type); 29 AMateria(AMateria const& target); 30 AMateria& operator=(AMateria const& target); 31 32 std::string const& getType(void) const; 33 virtual AMateria* clone(void) const = 0; 34 virtual void use(ICharacter& target); 35 }; 36 37 #endif /* __AMATERIA_HPP__ */