Bonjours à vous !
Je me trouve confronté à un problème assez gênant lors de la réalisation d'un projet tuteuré. Pour vous resituer dans le contexte, je crois créer des zombies, par conséquent des anciens humains contaminés, et qui appartiennent à un groupe.
Le problème est qu'un zombie pointe vers un Groupe de zombie déjà instancié, hors un Groupe est crée à partir d'un zombie déjà instancié lui aussi. Du coups si je corrige l'inclusion cyclique dans l'un ( 'Group does not name a type', elle se présente dans l'autre sous la forme de expected ')' before '*' token sur mon constructeur de Group.
Je vous inclus les fichiers avec en commentaire les opérations que j'ai effectué pour que la seconde erreur apparaîsse.
Zombie.h
Zombie.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #ifndef ZOMBIE_H #define ZOMBIE_H #include "./Human.h" // [Seconde erreur] : #include "./Group.h" class Zombie : public Human { public: static const unsigned short m_CONTAGION_RADIUS=2; Zombie(int id, Coordinate coord); ~Zombie(); /* Permet d'ajouter un humain au nombre de victimes contaminés */ bool hasContamined(); /* Permet de récuperer le nombre d'humain contaminés par le zombie */ unsigned short getContagionAmount(); protected: private: unsigned short m_contagionAmount; Group* m_groupe; }; #endif // ZOMBIE_H
Group.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "Zombie.h" #include "Group.h" // [Seconde erreur] : Include supprimé #include "../FloorData/Coordinate.h" Zombie::Zombie(int id, Coordinate coord, *Group myGroup) : Human(id, coord), m_group(myGroup), m_contagionAmount(0) { } Zombie::~Zombie() { //dtor } bool Zombie::hasContamined(){} unsigned short Zombie::getContagionAmount(){}
Group.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #ifndef GROUP_H #define GROUP_H #include <vector> #include "Zombie.h" // [Seconde erreur] : Include supprimé class Group { public: Group(Zombie* aZombie); /* Permet de récuperer la liste des groupes instanciés lors de la partie */ static std::vector<Group*> getGroupList(); /* Permet d'ajouter un zombie au groupe ciblé * Param : Le nouveau zombie à ajouter*/ bool addZombie(Zombie* newZombie); /* Permet de supprimer le zombie en question du groupe * * Param : Le zombie à supprimer */ bool delZombie(Zombie* aZombie); /* Permet de récuperer la liste des zombies appartenant au groupe ciblé */ std::vector<Zombie*> getZombieList(); /* Permet de récuperer le nombre total de zombies appartenant au groupe ciblé */ int size(); protected: private: static std::vector<Group*> GROUP_LIST; std::vector<Zombie*> zombiesList; }; #endif // GROUP_H
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include "Group.h" // [Seconde erreur] : #include "Zombie.h" #include <vector> using namespace std; vector<Group*> Group::getGroupList{} Group::Group(Zombie* aZombie) { } bool Group::addZombie(Zombie *newZombie){} bool Group::delZombie(Zombie *newZombie){} vector<Zombie*> Group::getZombieList(){} int Group::size(){}
Je sais pas si j'ai réeussi à être clair... Mais j'espère que vous pourrez m'aider !
Partager