Partage
  • Partager sur Facebook
  • Partager sur Twitter

Méthodes dans une classe

Sujet résolu
    13 juin 2007 à 19:35:17

    Bonjour, j'aimerais betement savoir s'il est possible d'appeler une méthode d'un objet de la manière suivante:

    Si la classe est:
    class Unite {

            public:

            Unite(std::string nom);
            Unite(std::string nom, std::string nomArme, int degatsArme);
            void attaquer(Unite& cible);
            void recevoirCoup(int degats);
            void changerArme(std::string nom, int degats);
            void potionVie(void);
            void etat(void);

            private:

            int mvie;
            std::string mnom;
            Arme marme;
    };


    et que dans la méthode attaquer, on veuille faire changer l'arme du personnage en même temps (je sais cela n'a aucun sens, mais c'est juste pour le test ^^ ), lequel de ces deux code est correct ?

    void Unite::attaquer(Unite& cible) {

            changerArme("sabre", 50);
            cible.recevoirCoup(marme.getmdegats());

            return;
    }

    ou
    void Unite::attaquer(Unite& cible) {

            queq'chose.changerArme("sabre", 50);
            cible.recevoirCoup(marme.getmdegats());

            return;
    }
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      13 juin 2007 à 19:49:11

      C'est le premier qui est correct.
      Tu es dans la méthode d'un objet, donc par défaut, il va d'abord aller voir s'il n'a pas une méthode qui porte le nom changerArme. Il en trouve une, donc il l'utilise.
      Sinon, si tu veux vraiment être rassuré, tu as ceci qui est équivalent:

      void Unite::attaquer(Unite& cible) {

              this->changerArme("sabre", 50);
              cible.recevoirCoup(marme.getmdegats());

              return;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2007 à 19:54:56

        pourquoi return; avec un void? (à moins que ce soit un caprice de ton compilo)
        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2007 à 20:07:38

          Merci beaucoup !

          Pour la question du return ce n'est pas un caprice du compilo mais bien un caprice a moi ^^
          c'est juste que je préfere : quand la fonction retourne un int, on met return int; donc quand elle renvois rien, je met return;, je trouve ça logique et ce n'est pas interdit par la norme me semble t-il :)
          • Partager sur Facebook
          • Partager sur Twitter

          Méthodes dans une classe

          × 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