Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de compilation

Problème avec mon type d'objet

    25 octobre 2007 à 18:13:42

    Salut tout le monde :)

    Voila, j'ai un problème avec ma class Stage pour un petit projet personnel :)
    Le problème, c'est que pour mon vector, il dit que Player n'est pas déclarer dans ce scope.

    Donc voila mon code :
    1. #ifndef LEVEL_H_INCLUDED
    2. #define LEVEL_H_INCLUDED
    3. #include <iostream>
    4. #include <vector>
    5. #include <SDL/SDL.h>
    6. #include "players.h"
    7. class Stage{
    8.     public:
    9.     Stage(SDL_Surface*);
    10.     SDL_Surface* getBackground();
    11.     private:
    12.     int m_num;
    13.     std::string nom;
    14.     SDL_Surface *m_background;
    15.     std::vector<Player> player_list;
    16. };
    17. #endif // LEVEL_H_INCLUDED


    Et donc, le message d'erreur qu'il me dit est le suivant :

    Citation : Compilateur

    C:\Users\Cyril\Desktop\Codes Sources\C++\Jeu2d\stage.h:23: error: `Player' was not declared in this scope
    C:\Users\Cyril\Desktop\Codes Sources\C++\Jeu2d\stage.h:23: error: template argument 1 is invalid
    C:\Users\Cyril\Desktop\Codes Sources\C++\Jeu2d\stage.h:23: error: template argument 2 is invalid
    C:\Users\Cyril\Desktop\Codes Sources\C++\Jeu2d\stage.h:23: error: ISO C++ forbids declaration of `player_list' with no type



    Et donc, là je ne comprend pas d'où vient le problème :)

    Voila, merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2007 à 18:17:22

      Est-ce qu'on veut voir le code de players.h ?
      • Partager sur Facebook
      • Partager sur Twitter
      Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
        25 octobre 2007 à 18:18:48

        Oui, aucun problème :)

        Le voici :
        1. #ifndef PLAYERS_H_INCLUDED
        2. #define PLAYERS_H_INCLUDED
        3. #include <iostream>
        4. #include <SDL/SDL.h>
        5. #include "stage.h"
        6. class Player{
        7.     public:
        8.     Player(SDL_Surface*,Stage);
        9.     Player(SDL_Surface*,Stage,int x,int y);
        10.     void move(int x, int y,int pic);
        11.     bool checkConflict();
        12.     SDL_Surface* getDisplaySkin();
        13.     private:
        14.     SDL_Surface *m_skin[4];
        15.     SDL_Surface *m_display;
        16.     SDL_Rect m_position;
        17.     SDL_Surface *m_background;
        18.     SDL_Rect m_posBack;
        19.     SDL_Surface *m_screen;
        20.     std::string pseudo;
        21. };
        22. #endif // PLAYERS_H_INCLUDED


        Et voilà :)
        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2007 à 18:37:00

          Enlève l'inclusion de stage.h dans player.h
          • Partager sur Facebook
          • Partager sur Twitter
          Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
            25 octobre 2007 à 20:15:46

            Ouai mais si je fais ça, alors mon objet stage n'est plus déclaré pour mon joueur :)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              25 octobre 2007 à 20:25:00

              Enlève le et mets 'class Stage;' avant la classe Player.
              • Partager sur Facebook
              • Partager sur Twitter
                25 octobre 2007 à 20:59:31

                Citation : hiura

                Enlève le et mets 'class Stage;' avant la classe Player.


                puis inclus stage.h dans le .cpp de la classe player
                • Partager sur Facebook
                • Partager sur Twitter
                  25 octobre 2007 à 22:32:40

                  Dépendances circulaires classiques.
                  cf FAQ C++ de developpez.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.

                  Problème de compilation

                  × 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