IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[Template] problème de références croisées


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut [Template] problème de références croisées
    bonjour,

    comme dit dans le titre : j'ai un problème avec les templates

    donc

    j'ai creer une liste de template

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    template<class Template>
    class Liste
     {
     };
    de la j'herite 2 class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    template<class Template>
    class ListePrimaire : public Liste<Template>
     {
     };
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    template<class Template>
    class ListeSecondaire : public Liste<Template>
     {
     };
    la ListePrimaire contient des éléments (logique ...)
    La listeSecondiare contient les éléments de la listePrimaire
    à savoir qu'il y a plusieurs ListeSecondaire

    et donc la ListeSecondaire doit avoir une référence a la ListePrimaire pour pouvoir aller chercher les éléments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template<class Template>
    class ListeSecondaire : public Liste<Template>
     {
     private :
      ListePrimaire<Template> * listePrimaire;
     };
    le problème vient du fait que la ListePrimaire doit aussi avoir une reference a chaque ListeSecondaire .... c'est a dire une liste de ListeSecondaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template<class Template>
    class ListePrimaire : public Liste<Template>
     {
     private :
      Liste<ListeSecondaire<Template> > * listeDeListe;
     };
    et c'est là que ca coince parce que le compilo me met "undefined symbol : ListeSecondaire" ce que je comprend, mais si j'inclus le ListeSecondaire.h, là c'est la ListePrimaire qu'il ne reconnaît pas

    j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    template<class Template>
    class ListePrimaire : public Liste<Template>
     {
     private :
      Liste<class ListeSecondaire<Template> > * listeDeListe;
     };
    mais ca ne change rien

    j'ai essayé d'autres trucs inutiles mais ne trouvant toujours pas de solution, je me suis donc tourné vers le forum
    Si ca se trouve c'est tout simple en plus ...
    merci

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    De même que si tu as une dépendance circulaire entre deux classes, tu la classe en donnant une déclaration d'une des classes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A;
     
    class B
    {
      A* m1;
    };
     
    class A
    {
      B m2;
    };
    tu casses ta dépendance en donnant une déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    template <typename T> class A;
     
    template <typename T> class B 
    {
       A<T>* m1;
    };
     
    template <typename T> class A
    {
       B<T> m2;
    };
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut class ListeSecondaire
    bonjour;
    t'a essayer de mettre

    Avant la déclaration de declarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    template<class Template>
    class ListePrimaire : public Liste<Template>
     {
     private :
      Liste<ListeSecondaire<Template> > * listeDeListe;
     };
    If you type Google into Google, you Can break the internet" - The IT Crowd

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    ca marche avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template <class Template> class ListeSecondaire;
    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de déclaration avec références croisées
    Par lpierard dans le forum Débuter
    Réponses: 2
    Dernier message: 20/11/2009, 15h10
  2. Gros problème de conception : référence croisée
    Par Baptiste Wicht dans le forum Général Java
    Réponses: 14
    Dernier message: 26/04/2007, 13h14
  3. Problème de référence croisée
    Par Nyphel dans le forum C++
    Réponses: 10
    Dernier message: 18/04/2007, 14h23
  4. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo