Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur include

Sujet résolu
    11 octobre 2020 à 20:22:07

    Bonjour à tous,

    Je viens vers vous car j'ai un problème avec mes include depuis un bon moment.

    J'ai une class X qui est parent de plusieur autre class lors de la compilation je me retrouve toujours avec "expected class-name before ‘{’ token", si je comprend bien cela veux dire que ma class parent n'est pas include au moment où je déclare l'héritage.

    Pour la compilation j'utilise Cmake Mais avec un Makefile j'ai le même soucis vois les fichier hpp type de mon projets:

    X.hpp

        #ifndef X_X
        #define X_X
    
        class X{
    
        };
    
         #endif


    Y.hpp

    #ifndef Y_Y
    #define Y_Y
    #include X.hpp class Y{ }; #endif


    -
    Edité par Guillaume Fish 11 octobre 2020 à 20:50:09

    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2020 à 20:26:08

      Salut,

      Après l'accolade fermante de la classe, il faut un ;

      #ifndef X_H
      #define X_H
      
      class X{
          /* ... */
      }; // <-- ICI
      
      #endif



      • Partager sur Facebook
      • Partager sur Twitter
      Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
        11 octobre 2020 à 20:46:03

        Salut,

        En effet je l'ai oublié dans l'écriture du sujet mais elle est bien présente dans mon code

        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2020 à 2:42:55

          Ne serait-ce pas l'include sans "?
          #include X.hpp
          //vs
          #include "X.hpp"

          Sinon je crains qu'il ne nous faille voir plus de code pour pouvoir t'aider
          • Partager sur Facebook
          • Partager sur Twitter
            12 octobre 2020 à 9:46:13

            Elried a écrit:

            Ne serait-ce pas l'include sans "?

            Ça existe ? 

            • Partager sur Facebook
            • Partager sur Twitter
              12 octobre 2020 à 10:27:07

              Non justement, c'est ce que dit Elried, il manque les double quote.
              • Partager sur Facebook
              • Partager sur Twitter
                12 octobre 2020 à 11:07:36

                rouloude a écrit:

                Elried a écrit:

                Ne serait-ce pas l'include sans "?

                Ça existe ? 

                En fait, il n'y a que deux possibilités pour la directive #include :

                • soit on utilise les doubles quotes ( ex: #include "le_fichier_a_inclure" )
                • soit on utilise les symboles <> (ex: #include <le_fichier_a_inclure> )

                La seule différence réelle entre les deux étant l'ordre dans lequel  les différents dossiers seront parcourus à la recherche du fichier indiqué ;)

                • Partager sur Facebook
                • Partager sur Twitter
                Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
                  12 octobre 2020 à 12:24:05

                  >En fait, il n'y a que deux possibilités pour la directive #include :

                  C'est parce que vous ne connaissent pas le pouvoir des MACRO ancestrales HA!HA!HA (toute référence à Musclor est fortuite, ... ou pas)

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    13 octobre 2020 à 9:48:48

                    Salut à tous déjà merci pour vos réponses :)

                    J'ai trouvé mon problème et c'était une mauvaise définition de mes #ifndef #define donc rien de magique ou autres

                    En vous souhaitant une bonne journée et encore merci à vous

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Erreur include

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown