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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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 !