Fatal error en C++

Fermé
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010 - 14 déc. 2008 à 13:39
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009 - 12 janv. 2009 à 14:04
Bonjour,
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

natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1
14 déc. 2008 à 13:42
Il y'a trop d'include
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009
14 déc. 2008 à 13:44
si on enleve les include
152 erreur
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009
14 déc. 2008 à 13:46
bon moi et nadia on fait un jeu de labyrithe c++
ya bcps de fichiers qui l'un utilise l'autre
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009
14 déc. 2008 à 13:43
moi aussi jai la meme
erreur
0
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010
14 déc. 2008 à 13:44
alors comment faire j'ai besoin de ces includes
0
natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1
14 déc. 2008 à 13:49
Tu peux coller ces includes ici ?
0
natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1
14 déc. 2008 à 13:51
Je crois que que ton probleme est par rapport aux includes récursifs
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010
14 déc. 2008 à 13:52
pardon?
0
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010
14 déc. 2008 à 13:54
oui c'est ça ,mais comment resoudre ce prob
0
natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1
14 déc. 2008 à 13:57
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é
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009 > natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009
14 déc. 2008 à 13:59
#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();


};
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009 > natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009
14 déc. 2008 à 14:01
l'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);
};
0
natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1 > nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009
14 déc. 2008 à 14:09
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
0
natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009 1 > natas666 Messages postés 259 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 28 mars 2009
14 déc. 2008 à 14:11
excuse moi pour "include récursif dans ccc_shap.h" !!! je me suis trompé là dessus! j'ai marqué le nom de mon fichier.
0
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010
14 déc. 2008 à 14:03
#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();


};
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
14 déc. 2008 à 14:10
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

0
nadia hareb Messages postés 110 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 18 août 2010
14 déc. 2008 à 14:15
sachant que je travaille sur visual c++
bon la le nombre d"erreur c"est multiplié
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
14 déc. 2008 à 14:23
Désolé, j'ai mal placé le #define et le #ifndef. J'ai corrigé mon erreur dans le post précédent. Re teste. ;)
0
nayma Messages postés 19 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 juillet 2009
12 janv. 2009 à 14:04
je dois developper un logiciel de chat en c.et je me suis bloqué
si quel qu'un peut m'aider je serai ravi
0