Fatal error en C++
nadia hareb
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
nayma Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
nayma Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j"arrive pas a compiler un programme en c++;5 message d"herreur de type : fatal errorC1014:fichier Include tros nombreux:profondeur = 1024
j"arrive pas a compiler un programme en c++;5 message d"herreur de type : fatal errorC1014:fichier Include tros nombreux:profondeur = 1024
10 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui c'est ça ,mais comment resoudre ce prob
#include"Porte.h"
#include"Monstre.h"
#include"main.h"
class Porte;
class Monstre;
class Chambre{
Porte portes[4];
Monstre *mstr;
public:
Chambre();
~Chambre();
Chambre* getvs(Dir d)const;
void setvs(Dir d,Chambre* chbr);
Monstre* getmstr()const;
void setmstr(Monstre* m);
void setverou(Dir d,bool ver);
bool estverou(Dir d)const;
int nbreporteverou();
Chambre getvsacc()const;
void detruiremstr();
};
#include"Monstre.h"
#include"main.h"
class Porte;
class Monstre;
class Chambre{
Porte portes[4];
Monstre *mstr;
public:
Chambre();
~Chambre();
Chambre* getvs(Dir d)const;
void setvs(Dir d,Chambre* chbr);
Monstre* getmstr()const;
void setmstr(Monstre* m);
void setverou(Dir d,bool ver);
bool estverou(Dir d)const;
int nbreporteverou();
Chambre getvsacc()const;
void detruiremstr();
};
Ah, ça va, je pensais que dans ton fichier chambre.h (apr exemple) tu avais fais #include "chambre.h" donc il va s'inclure récursivement de manière infinie, d'où l'erreur !
Mais là, ça va, je ne vois pas de probleme!
include récursif dans ccc_shap.h
Il est indispensable de toujours mettre des gardes pour éviter les includes récursifs.
Moi, j'aurai pris des précautions en faisant comme ceci (exemple pour ton chambre.h):
#ifndef CHAMBRE_H_
# define CHAMBRE_H_
// code
#endif
Mais là, ça va, je ne vois pas de probleme!
include récursif dans ccc_shap.h
Il est indispensable de toujours mettre des gardes pour éviter les includes récursifs.
Moi, j'aurai pris des précautions en faisant comme ceci (exemple pour ton chambre.h):
#ifndef CHAMBRE_H_
# define CHAMBRE_H_
// code
#endif
#include"Porte.h"
#include"Monstre.h"
#include"main.h"
class Porte;
class Monstre;
class Chambre{
Porte portes[4];
Monstre *mstr;
public:
Chambre();
~Chambre();
Chambre* getvs(Dir d)const;
void setvs(Dir d,Chambre* chbr);
Monstre* getmstr()const;
void setmstr(Monstre* m);
void setverou(Dir d,bool ver);
bool estverou(Dir d)const;
int nbreporteverou();
Chambre getvsacc()const;
void detruiremstr();
};
#include"Monstre.h"
#include"main.h"
class Porte;
class Monstre;
class Chambre{
Porte portes[4];
Monstre *mstr;
public:
Chambre();
~Chambre();
Chambre* getvs(Dir d)const;
void setvs(Dir d,Chambre* chbr);
Monstre* getmstr()const;
void setmstr(Monstre* m);
void setverou(Dir d,bool ver);
bool estverou(Dir d)const;
int nbreporteverou();
Chambre getvsacc()const;
void detruiremstr();
};
Salut,
C'est normal, c'est ce qu'on appelle de l'inclusion récursif. Il faut faire ce qu'on appelle un guard.
Tu dois rajouter trois lignes. Voici un exemple (j'ai mis les lignes à rajouter en gras).
Tu fais ça pour chacun de tes fichiers, en changeant bien évidemment PORTE_H en le nom de ton fichier h.
C'est normal, c'est ce qu'on appelle de l'inclusion récursif. Il faut faire ce qu'on appelle un guard.
Tu dois rajouter trois lignes. Voici un exemple (j'ai mis les lignes à rajouter en gras).
Tu fais ça pour chacun de tes fichiers, en changeant bien évidemment PORTE_H en le nom de ton fichier h.
#include"Porte.h" #include"Monstre.h" #include"main.h" #ifndef PORTE_H #define PORTE_H class Porte; class Monstre; class Chambre{ Porte portes[4]; Monstre *mstr; public: Chambre(); ~Chambre(); Chambre* getvs(Dir d)const; void setvs(Dir d,Chambre* chbr); Monstre* getmstr()const; void setmstr(Monstre* m); void setverou(Dir d,bool ver); bool estverou(Dir d)const; int nbreporteverou(); Chambre getvsacc()const; void detruiremstr(); }; #endif
152 erreur
ya bcps de fichiers qui l'un utilise l'autre