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 :

tableau d'élément ayant un même héritage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut tableau d'élément ayant un même héritage
    Bonjour,

    y a-t-il un moyen propre de faire un tableau avec des éléments de class différentes mais ayant le même parent ?

    Genre j'ai une classe 'forme' et je veux stocker mes carrées, ronds, ... dans un seul containeur. J'ai pensé à utiliser union mais je pense qu'il doit y avoir un moyen plus propre de faire ça.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    faire un tableau de pointeurs sur tes éléments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    vector<Forme *> tableau;
    tableau.push_back(new Rond);
    tableau.push_back(new Carre);
    tableau.push_back(new Rectangle);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Par défaut
    [EDIT]Pris de cours par ram-0000, je cautionne bien sur sa réponse[/EDIT]
    Bonjour,

    C'est une bonne question, mais qui en fait va soulever chez toi des questions beaucoup plus profondes et intéressantes sur l'héritage et l'absence en C++ de réflexion (mécanisme qui fait qu'un object connait son propre type)..

    Je te donne toujours la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Class Parent{};
    class Fils : public Parent{};
    class Fille : public Parent{};
     
    Parent* a[30];
    a[0] = new Fils();
    a[1] = new Fille();
    Derniers élément que tu peux mettre dans un coin de ta tête pour l'instant : autant au début, il est important de comprendre comment ça marche et d'apprendre à les utiliser, autant dans un vrai projet industriel, tu ne dois surtout jamais (disons : très rarement) te servir :
    - des tableaux => préfère les conteneurs.
    - des pointeurs => préfère des structures de stockage, des gestionnaires de mémoire et/ou des pointeurs intelligents.

    Courage

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par Feriaman Voir le message
    C'est une bonne question, mais qui en fait va soulever chez toi des questions beaucoup plus profondes et intéressantes sur l'héritage et l'absence en C++ de réflexion (mécanisme qui fait qu'un object connait son propre type)..
    e
    Avant d'aborder la réflexion en C++, il serait bon de surtout penser au problème de la gestion de la mémoire !

    Faire un std::vector de pointeurs, d'accord, mais attention à ne pas oublier de libérer la mémoire au moment opportun. Pour ma part, je préfère faire des vector avec les shared_ptr de boost, comme ça je me pose pas trop de questions.

    Que veux-tu faire de ces pointeurs par la suite ? As-tu besoin de retrouver le type enfant ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut
    @ jblecanard : par tableau je pensais plutôt à un vecteur en fait. Ensuite je veux itéré dessus pour faire des opérations qui sont similaires pour chaque forme. J'ai des fonctions identiques pour chaque forme mais adapter à chaque forme.

    Merci à tous pour vos réponses

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

Discussions similaires

  1. [XL-2010] Extraction d'une liste de cellules d'un tableau ayant la même valeur définie
    Par jerodino dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/04/2013, 13h51
  2. Comparaison éléments dans un même tableau
    Par benf35 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2013, 09h44
  3. Réponses: 4
    Dernier message: 06/10/2009, 10h44
  4. éléments ayant la même ClassName
    Par enok37 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/07/2007, 18h56
  5. travaillez sur des élément ayant le même id
    Par pierreonxbox dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 17h29

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