Partage
  • Partager sur Facebook
  • Partager sur Twitter

tableau de class

Sujet résolu
    14 août 2007 à 9:37:32

    salut

    j'aimerais créer un inventaire et pour ça j'aimerais créer une classe objet avec des méthodes comme "retirerinventaire" ou "mettreinventaire" et ensuite dériver en classes "armes" ou "armues";

    cependant je voulais savoir si en créant un tableau d'objet (comprenez de ma classe objet) je pouvais le remplir avec des armes(objet dérivé de objet)

    est ce que c'est clair ? parce que comme j'ai une classe qui s'apelle objet :euh:

    ^^ si vous avez besoin de plus d'info dites moi et merci d'avance pour vos réponse.

    Icare

    EDIT: j'ai cru voir le mot polymorphisme ça a un rapport ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 août 2007 à 14:19:26

      je suis pas sur d'avoir compris ton problème mais regarde du côté des vector, peut-être que c'est ce que tu cherches. (cppreference.com)
      • Partager sur Facebook
      • Partager sur Twitter
        15 août 2007 à 14:23:07

        Regarde du coté du polymorphisme c'est la meilleure solution à ton problème.
        • Partager sur Facebook
        • Partager sur Twitter
        Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
          15 août 2007 à 17:17:17

          Tu cherche a savoir si tu peux faire un tableaux d'objet?
          Ou un truc du genre:
          1. maClasseObjet objet = new armure;

          ?
          • Partager sur Facebook
          • Partager sur Twitter
            15 août 2007 à 17:48:59

            Je suis pas sur de comprendre ton problème mais je tente de répondre:
            1. #include <iostream>
            2. class objet
            3. {
            4.   public:
            5.   virtual void ma_fonction() const = 0;
            6. };
            7. class arme : public objet
            8. {
            9.    public:
            10.    arme(std::string n):m_nom(n){}
            11.    virtual ~arme(){}
            12.    virtual void ma_fonction() const {std::cout<<"Je suis un(e) "<<m_nom<<"\n";}
            13.    protected:
            14.    std::string m_nom;
            15. };
            16. class armure: public objet
            17. {
            18.    public:
            19.    armure(int armure):m_armure(armure){}
            20.    virtual void ma_fonction() const {std::cout<<"Je suis une armure de "<<m_armure<<"!\n";}
            21.    protected:
            22.    int m_armure;
            23. };
            24. objet *inventaire[]=
            25. {
            26.   new arme("hache"),
            27.   new armure(10),
            28.   new armure(5),
            29.   new arme("trébuchet"),
            30.   new arme("épée"),
            31. };
            32. int main()
            33. {
            34.   std::cout<<"Mon inventaire:\n";
            35.   for(int i=0;i<sizeof(inventaire)/sizeof(inventaire[0]);i++)
            36.     inventaire[i]->ma_fonction();
            37.   return 0;
            38. }
            • Partager sur Facebook
            • Partager sur Twitter
              15 août 2007 à 18:08:37

              1. //...
              2. #include <vector>
              3. class Arme
              4. {
              5.         public:
              6.                 Arme *getAdr(void)
              7.                 {
              8.                         return this;
              9.                 }
              10.                 //...
              11. };
              12. class Inventaire
              13. {
              14.         public:
              15.                 //...
              16.                 Inventaire &operator<<(Arme &o)
              17.                 {
              18.                         m_arme.push_back(o.getAdr());
              19.                         return *this;
              20.                 }
              21.                 //...
              22.         private:
              23.                 std::vector<Arme*> m_arme;
              24.                 //...
              25. };
              26. //le main
              27. int main(void)
              28. {
              29.         Arme arme;
              30.         Inventaire inventaire;
              31.         inventaire << arme; //l'arme sera dans l'inventaire
              32.         //...
              33. }


              c'est comme ca que je ferais (bien sur ce n'ai qu'un exemple)
              • Partager sur Facebook
              • Partager sur Twitter
                15 août 2007 à 19:36:44

                oui j'ai regardé vos exemples c'est pile poil ça et ça marche en plus merci beaucoup ^^
                • Partager sur Facebook
                • Partager sur Twitter

                tableau de class

                × 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