The subject says that learnMateria "Copies the Materia passed as
a parameter and store it in memory so it can be cloned later."
From that I get that learnMateria makes a copy of the Materia passed
meaning we cant use "new AMateria()" to learn it, as we have no handle
to that object to delete it.
ICharacter* bob = new Character("bob");
AMateria* tmp;
- src->learnMateria(new Ice());
- src->learnMateria(new Cure());
tmp = src->createMateria("ice");
+ src->learnMateria(tmp);
me->equip(tmp);
tmp = src->createMateria("cure");
+ src->learnMateria(tmp);
me->equip(tmp);
me->use(0, *bob);
me->use(1, *bob);