diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-11-15 17:24:46 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-11-15 17:24:46 +0100 |
| commit | 62be117da22b5159c8712537ac7ef135ff3007b8 (patch) | |
| tree | 2a0447d54264465db0878fe19160759220043672 | |
| parent | 4c30e98f4a4018a25d3a9f3ee790d589be803cb0 (diff) | |
| download | piscine_cpp-62be117da22b5159c8712537ac7ef135ff3007b8.tar.gz piscine_cpp-62be117da22b5159c8712537ac7ef135ff3007b8.tar.bz2 piscine_cpp-62be117da22b5159c8712537ac7ef135ff3007b8.zip | |
Fixing cpp04/03 crash
| -rw-r--r-- | cpp04/ex03/Character.cpp | 9 | ||||
| -rw-r--r-- | cpp04/ex03/Cure.cpp | 4 | ||||
| -rw-r--r-- | cpp04/ex03/Ice.cpp | 4 | ||||
| -rw-r--r-- | cpp04/ex03/MateriaSource.cpp | 4 | ||||
| -rw-r--r-- | cpp04/ex03/main.cpp | 40 |
5 files changed, 30 insertions, 31 deletions
diff --git a/cpp04/ex03/Character.cpp b/cpp04/ex03/Character.cpp index d159aaf..bc58588 100644 --- a/cpp04/ex03/Character.cpp +++ b/cpp04/ex03/Character.cpp @@ -6,12 +6,15 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/14 16:45:54 by charles #+# #+# */ -/* Updated: 2020/11/13 14:20:50 by cacharle ### ########.fr */ +/* Updated: 2020/11/15 17:10:46 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "Character.hpp" +Character::Character(std::string const& name) + : m_name(name), m_inventory_size(0) {} + Character::Character(Character const& other) : m_inventory_size(0) { *this = other; } @@ -27,13 +30,11 @@ Character& Character::operator=(Character const& other) Character::~Character() { destroyInventory(); } -Character::Character(std::string const& name) : m_name(name), m_inventory_size(0) {} - std::string const& Character::getName() const { return m_name; } void Character::equip(AMateria* m) { - if (m_inventory_size >= INVENTORY_MAX_SIZE) + if (m_inventory_size >= INVENTORY_MAX_SIZE || m == NULL) return; m_inventory[m_inventory_size] = m; m_inventory_size++; diff --git a/cpp04/ex03/Cure.cpp b/cpp04/ex03/Cure.cpp index dc464ff..f109023 100644 --- a/cpp04/ex03/Cure.cpp +++ b/cpp04/ex03/Cure.cpp @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/14 17:38:01 by charles #+# #+# */ -/* Updated: 2020/11/13 14:09:58 by cacharle ### ########.fr */ +/* Updated: 2020/11/15 17:21:10 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ Cure::Cure() : AMateria("cure") {} -Cure::Cure(Cure const& other) { *this = other; } +Cure::Cure(Cure const& other) : AMateria("cure") { *this = other; } Cure& Cure::operator=(Cure const& other) { diff --git a/cpp04/ex03/Ice.cpp b/cpp04/ex03/Ice.cpp index 9df83b2..97225de 100644 --- a/cpp04/ex03/Ice.cpp +++ b/cpp04/ex03/Ice.cpp @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/14 16:32:27 by charles #+# #+# */ -/* Updated: 2020/11/13 14:06:33 by cacharle ### ########.fr */ +/* Updated: 2020/11/15 17:22:00 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ Ice::Ice() : AMateria("ice") {} -Ice::Ice(Ice const& other) : AMateria(other) {} +Ice::Ice(Ice const& other) : AMateria("ice") { *this = other; } Ice& Ice::operator=(Ice const& other) { diff --git a/cpp04/ex03/MateriaSource.cpp b/cpp04/ex03/MateriaSource.cpp index 774506b..0d21ab8 100644 --- a/cpp04/ex03/MateriaSource.cpp +++ b/cpp04/ex03/MateriaSource.cpp @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/14 17:19:10 by charles #+# #+# */ -/* Updated: 2020/11/13 14:40:54 by cacharle ### ########.fr */ +/* Updated: 2020/11/15 17:22:19 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ MateriaSource::~MateriaSource() { destroyLearned(); } void MateriaSource::learnMateria(AMateria* materia) { - if (m_learned_size >= 4) + if (m_learned_size >= 4 || materia == NULL) return; m_learned[m_learned_size] = materia->clone(); m_learned_size++; diff --git a/cpp04/ex03/main.cpp b/cpp04/ex03/main.cpp index 871007d..6444877 100644 --- a/cpp04/ex03/main.cpp +++ b/cpp04/ex03/main.cpp @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/14 17:58:01 by charles #+# #+# */ -/* Updated: 2020/11/13 14:41:49 by cacharle ### ########.fr */ +/* Updated: 2020/11/15 17:23:07 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,24 +17,22 @@ int main() { - IMateriaSource* src = new MateriaSource(); - src->learnMateria(new Ice()); - src->learnMateria(new Cure()); - - ICharacter* me = new Character("me"); - - AMateria* tmp; - tmp = src->createMateria("ice"); - me->equip(tmp); - tmp = src->createMateria("cure"); - me->equip(tmp); - - ICharacter* bob = new Character("bob"); - - me->use(0, *bob); - me->use(1, *bob); - - delete bob; - delete me; - delete src; + { + std::cout << "================== SUBJECT MAIN ==================" << std::endl; + IMateriaSource* src = new MateriaSource(); + src->learnMateria(new Ice()); + src->learnMateria(new Cure()); + ICharacter* me = new Character("me"); + AMateria* tmp; + tmp = src->createMateria("ice"); + me->equip(tmp); + tmp = src->createMateria("cure"); + me->equip(tmp); + ICharacter* bob = new Character("bob"); + me->use(0, *bob); + me->use(1, *bob); + delete bob; + delete me; + delete src; + } } |
