Un container qui prend plusieurs types d'objet en C++
cs_kanta
Messages postés3Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention20 août 2008
-
20 août 2008 à 10:10
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
31 oct. 2008 à 17:12
Bonjour à tous,
Ma question concerne le c++. Je cherche un container dans lequel je pourrais mettre les objets de type différent. Par exemple dans un vecteur ou une list, on ne peut mettre qu'un seul type soit un int ou un string ... Or moi je souhaiterais mettre à la fois les string et les int .
Est ce que quelqu'un à une solution ?
Merci d'avance.
abuob
A voir également:
Un container qui prend plusieurs types d'objet en C++
cs_kanta
Messages postés3Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention20 août 2008 20 août 2008 à 12:27
Les templates permettent d'avoir un seul type or ce que je cherche c'est de stocker un coup un string dans mon container et un autre coup un double. Est ce que vous m'avez compris ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 20 août 2008 à 13:44
Salut,
Tu peux faire hériter les classes que tu souhaites mettre dans ton container d'une seule classe (MonDouble héritant de MonElement, MonString héritant de MonElement...)
Puis tu crées le container STL de ton choix en lui demandant de stocker des MonElement.
Lorsque tu lis ce qu'il y a dans ton container, tu peux savoir si c'est un MonDouble ou un MonElement grace à RTTI.
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 31 oct. 2008 à 17:12
Salut,
une autre solution est aussi d'utiliser des pointeurs void* avec un typeof , ou un pair<long,long> le premier etant une constante definissant le type de ta classe et le second l'adresse de l'objet.