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
Configuration: Windows XP
Firefox 3.0.4

10 réponses

  1. Il y'a trop d'include
    0
    1. si on enleve les include
      152 erreur
      0
    2. bon moi et nadia on fait un jeu de labyrithe c++
      ya bcps de fichiers qui l'un utilise l'autre
      0
  2. alors comment faire j'ai besoin de ces includes
    0
    1. Tu peux coller ces includes ici ?
      0
  3. Je crois que que ton probleme est par rapport aux includes récursifs
    0
    1. oui c'est ça ,mais comment resoudre ce prob
      0
      1. 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
      2. @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();

        };
        0
      3. @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);
        };
        0
      4. @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
        0
      5. @natas666excuse moi pour "include récursif dans ccc_shap.h" !!! je me suis trompé là dessus! j'ai marqué le nom de mon fichier.
        0
    2. #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
      1. Contributeur
        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
        1. sachant que je travaille sur visual c++
          bon la le nombre d"erreur c"est multiplié
          0
          1. Contributeur
            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
        2. 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