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 :

Liste de 2 classes diffentes sans STL


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Par défaut Liste de 2 classes diffentes sans STL
    Bonsoir,

    Depuis plusieurs jours, j'essai de creer une listes de 2 classes differentes.
    Par exemple, j'ai creer une class A et une class B et je veux faire une liste: A-B-A-B-A-B

    Cela est-il possible? je pense que oui ^^
    Pouvez vous m'aider s'il vous plait?

    Sinon une liste permet-elle d'avoir plusieurs chemin?

    Ex : A-B-A-B-A-B
    .............|
    ............ C-A-C

    Merci

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Oui c'est possible... à condition que A et B aient la même classe mère!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class Mother
    {
         public :
         Mother() {} 
         virtual ~Mother() {}
     
         virtual void doSomething() = 0;
    };
     
    class A : public Mother
    {
        public:
        A() {}
     
        virtual void doSomething() { std::cout << "Je suis A" << std::endl; }
    };
     
    class B : public Mother
    {
        public:
        B() {}
     
        virtual void doSomething() { std::cout << "Je suis B" << std::endl;}
    };
    Avec ça tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    std::list<Mother*> multi_list;
    A* a = new A();
    B* b = new B();
    multi_list.insert(a);
    multi_list.insert(b);
     
    std::list<Mother*>::const_iterator iter = multi_list.begin();
     
    for (; iter != multi_list.end(); ++iter)
    {
        iter->doSomething();
    }
    delete a;
    delete b;
    C'est grâce au polymorphisme.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Par défaut
    Merci d'avoir repondu

    Cela tombe bien car mes Classes A et B descendent d'une classe de base

    Donc le premier carré de code j'ai compris mais le deuxieme je n'est jamais vu ça. Si ça utilise la bibliotheque STL, he ne dois pas l'utilisé

    Pour faire la liste, il faudrait creer un classe liste avec comme membre liste* suivant je pense non?

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ah désolé j'avais pas vu sans la STL... De quelle partie du C++ tu te prives !

    Question : et Boost, t'y as le droit ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Par défaut
    Non pas le droit à boost ^^

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Pffffffffff
    On m'a toujours dit : "Un bon ouvrier a de bons outils" !

    Plus sérieusement, toute la première partie (le polymorphisme) c'est le noyau.
    Après tu n'as plus qu'a implémenter ta liste, ou ton vecteur... avec un tableau classique par exemple.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/04/2007, 10h37
  2. Supprimer une classe Fille sans toucher a la Mere
    Par 17mounir dans le forum Hibernate
    Réponses: 2
    Dernier message: 08/01/2007, 12h27
  3. liste chainé en classe
    Par maroweb dans le forum C++
    Réponses: 7
    Dernier message: 09/12/2006, 19h05
  4. Réponses: 14
    Dernier message: 17/11/2006, 19h17
  5. Une classe vector sans STD?
    Par dedesite dans le forum C++
    Réponses: 7
    Dernier message: 31/05/2006, 17h04

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