Partage
  • Partager sur Facebook
  • Partager sur Twitter

C++ et héritage

#include nested too deeply! o_O

Sujet résolu
    15 juin 2007 à 20:13:20

    Bonjour, en fait je vien de terminer de faire une classe: "SDL".
    En fait j'aimerais la faire hériter, pour créer une classe "SDLG"(g comme game, pour gérer les jeux 2d).
    Mais quand je compile il me met
    Switching to target: default
    Compiling: SDLGame.cpp
    In file included from SDLG.h:6,
                     from SDLG.h:6,
                     from SDLG.h:6,
                     from SDLG.h:6,
                      etc...(y en a beaucoup comme ça)
                     from SDLGame.cpp:6:
    SDLG.h:1:20: #include nested too deeply
    SDLG.h:2:18: #include nested too deeply
    SDLG.h:3:21: #include nested too deeply
    SDLG.h:4:27: #include nested too deeply
    SDLG.h:5:25: #include nested too deeply
    SDLG.h:6:18: #include nested too deeply
    Process terminated with status 1 (0 minutes, 1 seconds)


            

    Comme apparement c'est une histoire d'include et tout le bazarre je vous met les dirrectives de préprocesseur de tout met fichier(y en a pas tant que ça ;) )
    SDL.cpp:
    #include <iostream>
    #include <string>
    #include <SDL/SDL.h>
    #include <SDL/SDL_Image.h>
    #include <SDL/SDL_ttf.h>

    #include "SDL.h"

    using namespace std;


    SDL.h
    #ifndef DEF_SDL
    #define DEF_SDL

    (rien d'extaordinnaire)

    main.cpp
    #include <iostream>
    #include <string>
    #include <SDL/SDL.h>
    #include <SDL/SDL_Image.h>
    #include <SDL/SDL_ttf.h>
    #include "SDLG.h"


    using namespace std;


    et enfin le SDLG.h où il y a ma nouvelle classe hérité (commec'est court, que ça marchait bien avant que ça soit là, et que je débute avec l'héritage, je vous met tout le code):
    #ifndef DEF_SDLG
    #define DEF_SDLG
    #include "SDL.h"

    class  SDL_Game: public SDL
    {
       public:
       SDL_Game(SDL_Surface*ecran,long x=0, long y=0): SDL(ecran, x, y){}
    }

    #endif



    Pour ma part, je ne comprend même pas le méssage d'erreur (c'est peut être parce que c'est la première fois que je manipule des classes dérivé.

    Ps: Je sais que l'héritage ici ne sert à rien, c'est un test :D .
    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2007 à 20:41:24

      As tu bien mis les #endif ?

      As tu essayés de changer le nom de tes define ?
      Ex #define H_SDLG_20070615
      • Partager sur Facebook
      • Partager sur Twitter
        15 juin 2007 à 22:14:40

        J'ai changé les defines.
        Ca va maintenant beaucoup mieu (enfin, il ya moin d'erreur en tout cas) voici les deux erreurs qui subsistent:
        main.cpp:9: error: expected unqualified-id before "using"
        main.cpp:9: error: expected `,' or `;' before "using"


        Ca concerna la ligne de main.cpp où il y a "using namespace std;".
        Je vous met, au cas ou, tout le début de main.cpp:
        #include <iostream>
        #include <string>
        #include <SDL/SDL.h>
        #include <SDL/SDL_Image.h>
        #include <SDL/SDL_ttf.h>
        #include "SDLG.h"


        using namespace std;



        Je viens de résoudre le problème tout seul comme un grand :D .
        J'avais juste oublié le ";" arpès la déclaration de ma classe SDL_Game.
        Bon bas merci de vos réponse, je cour mettre que mon problème est résolue. :)
        • Partager sur Facebook
        • Partager sur Twitter

        C++ et héritage

        × 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