Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème objet

    31 mai 2008 à 17:08:33

    Bonjours,

    j'ai un problème pour une méthode d'un objet. L'erreur est la suivante :

    C:\Documents and Settings\nico\Mes documents\programmation\Cours C++\Cours C++\Arme.h|13|error: `Personnage' has not been declared|


    Le code :

    #ifndef DEF_ARME
    #define DEF_ARME
    
    #include "Personnage.h"
    
    class Arme
    {
    
        public:
    
        Arme();
        Arme(std::string nom, int degats);
        void changer(std::string nom, int degats, Personnage &cible);
        void afficher();
        int getDegats() const;
    
        private:
    
        std::string m_nom;
        int m_degats;
    
    };
    
    #endif
    



    Pourtant j'ai fais l'include de Personnage.h donc il ne devrais pas y avoir de soucis. &cible est une référence envert un objet de type Personnage.

    Voila j'ai tout dit !
    Merci a vous !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      31 mai 2008 à 17:13:12

      fait voir Personnage.h
      • Partager sur Facebook
      • Partager sur Twitter
        31 mai 2008 à 17:15:01

        Voila monsieur :

        #ifndef DEF_PERSONNAGE
        #define DEF_PERSONNAGE
        
        #include "Arme.h"
        
        class Personnage
        {
        
            public:
        
            Personnage(std::string nom);
            Personnage(std::string nom, std::string nomArme, int degatsArme);
            ~Personnage();
            void recevoirDegats(int nbDegats);
            void boirePotionDeVie(int quantitePotion);
            void attaquer(Personnage &cible);
            void changerArme(std::string nomNouvelleArme, int degatsNouvelleArme);
            bool estVivant();
            void afficherEtat();
            std::string Personnage::getNom();
        
        
        
            private:
        
            int m_vie;
            int m_mana;
            Arme m_arme;
            std::string m_nom;
        };
        
        #endif
        

        • Partager sur Facebook
        • Partager sur Twitter
          31 mai 2008 à 17:16:08

          Fait un constructeur par défaut de personnage ou alors mes un/des arguments à cible.
          • Partager sur Facebook
          • Partager sur Twitter
            31 mai 2008 à 17:19:36

            Oula attent, comment ca des argument ?

            Edit : Je doit faire quoi en gros ? Je comprend plus rien
            • Partager sur Facebook
            • Partager sur Twitter
              31 mai 2008 à 17:21:28

              Tu m'as fais peur ^^ c'est :
              cible(blablabla, blablabla, Oo)
              Ça marche ?
              • Partager sur Facebook
              • Partager sur Twitter
                31 mai 2008 à 17:23:44

                Ouai mais puisque j'envois une cible normalement j'ai pas besoin de refaire

                goliath.changerArme("Double hache tranchante veneneuse de la mort", 40, goliath);
                


                le 3eme argument est l'objet goliath qui a ses point de vie, nom ect...
                • Partager sur Facebook
                • Partager sur Twitter
                  31 mai 2008 à 17:26:00

                  Je sais mais sois tu fais un nom débile et que ça sert à rien soit tu fais un constructeur par défaut.
                  La programmation c'est carré (ça change pas comme ça c'est tous le temps comme ça et tu doit faire comme ça sinon ça marche aps en gros c'est ça carré) c'est pour ça que j'aime :p .
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 mai 2008 à 17:28:48

                    Je comprend pas bien, donc enfaite dans ma méthode changerArme je veu afficher cible.getNom() veut changer son arme nanana

                    Donc je m'y prend comment ? je doit obligatoirement créer un constructeur pas défaut ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      31 mai 2008 à 17:53:26

                      références croisées.
                      Cf FAQ de developpez.com c'est ici
                      Comme je suis de bonne humeur ( va savoir pourquoi), c'est ici

                      Edit: Eclyps si tu ne sas pas ne répond pas, surtout pour dire des conneries pareil.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 mai 2008 à 18:39:30

                        Pff je comprend rien :'(

                        J'ai rajouter :

                        class Arme;

                        en haut de personnage.h c'est ca qu'il faut faire ? car si c'est ca ca marche pas
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          31 mai 2008 à 18:50:53

                          Tu comprend pas quoi ?
                          C'est bien de dire "je ne comprend pas." C'est mieux de dire ce qui nous bloque.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 mai 2008 à 18:54:45

                            Bah tout, j'ai pas compris ce qu'il faut faire pour que sa marche.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              31 mai 2008 à 18:56:58

                              Ca c'est un pléonasme.

                              Ca va mieux si tu remplace A par Arme et B par Personnage ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 mai 2008 à 19:05:45

                                Ha bah j'était pas pret d'y arrive -_-', je mettait A pour Personnage et B pour Arme
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  31 mai 2008 à 19:19:21

                                  Ca change presque rien au final. Pour tout te dire j'ai mit ca au pif. L'important c'est que dans une classe tu va avoir un pointeur sur l'objet de l'autre type.
                                  Ca va donner un truc du genre:

                                  class Arme;
                                  
                                  class Perso
                                  {
                                  Arme* m_arme;
                                  public:
                                  Perso(/* Plein de paramètres */){m_arme=new Arme(/* de même*/);}
                                  };
                                  
                                  class Arme
                                  {
                                  };
                                  
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    31 mai 2008 à 19:21:28

                                    Bon, c'est pas grave, j'abandonne, je continue le cour car la je comprend mais vraiment rien. Merci a toi
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      31 mai 2008 à 19:51:08

                                      Si tu comprends pas recommence les cours de C++ depuis le début.
                                      EDIT : correction de fautes d'orthographe :p .
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        31 mai 2008 à 19:53:45

                                        nicox11 >> permet moite de dire que si tu abandonne avec si peu de problème, la prog c'est pas ton truc.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          31 mai 2008 à 22:47:18

                                          Je crois que j'en suis pas assez loin dans le cour. J'abandonne pour le moment, ca veut pas dire que je fou a la poubelle, je le met de coter et que je le continurais quand je serais pret

                                          Je suis fais pour la programmation en C, pourquoi pas en C++ ?
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Problème objet

                                          × 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