Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pointage réciproque de deux classes

Sujet résolu
    10 juillet 2007 à 16:05:27

    Bonjour,

    Mettons que je veuille créer deux classes Class1 et Class2 telles que (de façon intuitive) :
    • chaque instance de Class1 contient (une ou) plusieurs instance(s) de Class2 ;
    • chaque instance de Class2 appartient à une et une seule instance de Class1, et "sait" dans laquelle elle se trouve ;

    Par exemple : dans un FPS, Class1 est une map, Class2 est un joueur ; je vous laisse vérifier que les conditions ci-dessus sont vérifiées ;) .
    Nous en venons à mon problème :-° :
    class Class1
    {
       Class2* player;
    };

    class Class2
    {
       Class1* map;
    };

    (Supposons, pour simplifier, que je ne gère qu'un seul joueur par map, là n'étant pas le problème)

    Problème : lorsque je définis Class1, Class2 n'est pas encore définie... et vice versa si je change l'ordre de définition ! Et le compilateur grogne :euh:

    Voilà bien une heure que je cherche la solution, si vous pouviez me donner l'astuce je vous en serais reconnaissant !
    D'avance merci !
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2007 à 16:11:02

      class Class2; // predefinition
      class Class1
      {
      Class2* player;
      };

      class Class2
      {
      Class1* map;
      };

      Y'a pas de quoi :)
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        10 juillet 2007 à 16:30:16

        :o Pourquoi n'y ai-je pas pensé ?
        Merci beaucoup ! Sujet clos...
        • Partager sur Facebook
        • Partager sur Twitter

        Pointage réciproque de deux classes

        × 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