Fatal error en C++
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
-
Il y'a trop d'include
-
moi aussi jai la meme
erreur -
alors comment faire j'ai besoin de ces includes
-
Je crois que que ton probleme est par rapport aux includes récursifs
-
pardon?
-
oui c'est ça ,mais comment resoudre ce prob
-
-
@natas666#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();
}; -
@natas666l'autre fichier Chambre.h
et voiçi fichier Porte.h
#include"Chambre.h"
class Chambre;
class Porte
{bool verou;
Chambre * ouvre-sur;
public:
Porte();
Chambre* getovrs()const;
void setovrs(chambre* ch);
bool estveroup()const;
void setveroup(bool ver);
}; -
@naymaAh, ç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 -
@natas666excuse moi pour "include récursif dans ccc_shap.h" !!! je me suis trompé là dessus! j'ai marqué le nom de mon fichier.
-
-
#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();
}; -
ContributeurSalut,
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