Problème d'inclusions cycliques
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
Code:
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 |
Zombie.cpp
Code:
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.h
Code:
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 |
Group.cpp
Code:
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 !