CPP04 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
IMateriaSource.hpp
[詳解]
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* IMateriaSource.hpp :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: kamitsui <kamitsui@student.42tokyo.jp> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2025/05/29 23:42:44 by kamitsui #+# #+# */
9/* Updated: 2025/06/02 02:39:56 by kamitsui ### ########.fr */
10/* */
11/* ************************************************************************** */
12
24#ifndef IMATERIASOURCE_HPP
25#define IMATERIASOURCE_HPP
26
27#include "AMateria.hpp"
28#include <iostream> // For standard input/output operations
29#include <string> // For std::string to specify materia types
30
31// Forward declaration of AMateria to resolve circular dependency
32// IMateriaSource uses AMateria*, and AMateria uses ICharacter& (which could theoretically use IMateriaSource if design
33// was complex)
34class AMateria;
35
47 public:
53 virtual ~IMateriaSource() {}
54
61 virtual void learnMateria(AMateria *) = 0;
62
70 virtual AMateria *createMateria(std::string const &type) const = 0;
71};
72
73#endif
Declares the AMateria abstract base class.
Represents an abstract base class for all magical materias.
Definition AMateria.hpp:42
An interface for objects that can learn Materia templates and create new Materias.
virtual ~IMateriaSource()
Virtual destructor for the IMateriaSource interface. Ensures proper cleanup of derived class objects ...
virtual void learnMateria(AMateria *)=0
Learns a Materia template for later creation. This is a pure virtual function, requiring derived clas...
virtual AMateria * createMateria(std::string const &type) const =0
Creates a new Materia based on a learned type. This is a pure virtual function, requiring derived cla...