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

SL & STL C++ Discussion :

[CONCEPTION] vector de classes heritées


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 14
    Par défaut [CONCEPTION] vector de classes heritées
    bonjour,

    je fait appel a vous pour un probleme de conseption.
    je doit construire un vector d'objets A1, A2, A3, A4, ... heritées de A.

    seulement certain de ces objets ont un parametre valeurs.

    explication :
    - add 2
    - sub 3
    - stop

    stop, add et sub sont des commandes mais certaine ont un parametre (valeur).
    comment stocker ces commandes dans un vector ?

    si je stock add, sub, stop je n'ai pas la valeur ??

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 14
    Par défaut
    je me rend compte que le probleme n'est pas tres clair :-)

    je desire realiser une succession de commande tel que :

    empile 2
    add 3
    sub 1
    empile 3
    efface // depile en fait
    stop

    j'ai donc un vector de commande
    une classe commande (abstraite)
    et une classe par commande (empile, add, ..., stop)

    le probleme c'est que je ne sait pas comment faire pour stocker dans un meme vector une commande avec un parametre (valeur ici) et efface ou stop qui ne possede pas de parametre.

    merci

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Effectivement, c'est pas très clair.
    tu peux faire un vector de tout ce que tu veux par exemple: vector<string>
    Je ne vois pas trop la notion d'heritage.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 14
    Par défaut
    je veus stocker la succession de commande dans un vector de facon a pouvoir les executer plutard.

    donc je veus stocker add, empile, ... mais certain ont besoin d'un parametre donc commend faire pour les stocker eux ?

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Par défaut
    Citation Envoyé par A-S-H
    je veus stocker la succession de commande dans un vector de facon a pouvoir les executer plutard.

    donc je veus stocker add, empile, ... mais certain ont besoin d'un parametre donc commend faire pour les stocker eux ?
    Si tu veux enregistrer les paramètres et que rien ne t'empêche de définir un conteneur dans ta classe commande, un vector par exemple, pour stocker les éventuels paramètres, alors ...

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Salut.

    Est-ce qu'une multimap ne te serait-elle pas utile dans ce cas là? Tu pourrais associer une paire Objet-paramètre...

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    non, là, ce serait mauvais...
    Pour moi, il faut plus un vector d'une structure toujours assez grande pour contenir les deux (ici, ce serait intéressant), ou un vector de pointeurs sur une classe générique (polymorphisme)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    le probleme c'est que je ne sait pas comment faire pour stocker dans un meme vector une commande avec un parametre (valeur ici) et efface ou stop qui ne possede pas de parametre.
    Qu'est-ce que tu entends par commande? Si c'est une fonction, tu peux en stocker dans un vecteur grâce à des pointeurs

  9. #9
    Membre Expert
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Par défaut
    Pourquoi ne pas faire rentrer ton paramètre dans ta classe ?

  10. #10
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Moi je le verrai bien comme ça:
    Une classe IOperation. Cette classe (abstraite) contient un membre de type int qui est le résultat.
    Une classe Add qui hérite de Operation et le constructeur de Add prend un entier en paramètre. Add::Add(int param){resultat+=param};
    Idem pour les autres opérations.
    Ensuite on a un vector de Operation. vector <Operation*, Operation*> monVecteur (attention, il faut que ce soit des vecteurs).
    Il ne reste plus qu'à remplir le vecteur:
    vecteur.Add(new Add(2));
    etc...

    C'est assez bizzare comme solution car chaque classe n'a que son constructeur qui est implémenté (éventuellement son destructeur) et aucune méthode. Mais bon, ça devrait marcher.

Discussions similaires

  1. [Conception] Hiérarchie de classes et maintenance
    Par olivier1978 dans le forum C++
    Réponses: 15
    Dernier message: 04/10/2007, 22h52
  2. Aide conception diagramme de classes Projet Web
    Par alves.seb dans le forum Diagrammes de Classes
    Réponses: 9
    Dernier message: 12/06/2007, 14h29
  3. Réponses: 6
    Dernier message: 02/05/2007, 13h15
  4. [conception] vecteur de classes
    Par r0d dans le forum C++
    Réponses: 7
    Dernier message: 28/12/2005, 12h00
  5. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28

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