Fatal error en C++
nadia hareb
Messages postés
122
Statut
Membre
-
nayma Messages postés 11 Date d'inscription Statut Membre -
nayma Messages postés 11 Date d'inscription Statut Membre -
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
Configuration: Windows XP Firefox 3.0.4
10 réponses
-
-
-
-
Je crois que que ton probleme est par rapport aux includes récursifs
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
J'ai eu le même problème avant.
J'attends que tu me colle l'entête de ton code source et l'entête de l'include appellé- #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();
}; - 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
-
-
#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();
}; -
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.
#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 -
sachant que je travaille sur visual c++
bon la le nombre d"erreur c"est multiplié -
je dois developper un logiciel de chat en c.et je me suis bloqué
si quel qu'un peut m'aider je serai ravi