Tableau de pointeurs void*

[Résolu]
Signaler
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
172
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
27 novembre 2009
-
Bonjour à tous,



j'ai un problème à vous soummettre.

Je souhaite gérer des postes de travail et des postes de formations au sein d'une classe collection lespostes.

Dans une classe lespostes je déclare un tableau de pointeur de cette façon void* TabPostes[100];



Je déclare une classe poste et une classe posteFormation qui hérite de poste.



Grace à la méthode surchargée AjouterUnPoste(poste *unposte); (
AjouterUnPoste(posteFormation *unposte); ), je stocke toutes les
adresses mémoires des postes et postes de formation dans le tableau
TabPostes.



Au moment de la lecture de ce tableau je ne sais pas comment je peux
savoir si j'ai à faire à un objet poste ou un objet posteFormation. Et
pourtant j'essai d' utiliser l'opérateur cast du c et du c++.



Si vous avez une solution à me soumettre, merci de m'en faire part.



Marik7335

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Solution plutot sale fournie par xboxut (on dirait du polymorphisme à
la C). Il faut que tu utilises le polymorphisme (les fonctions
virtuelles). A quel moment à tu besoin de savoir de quel type il
s'agit? Ce traitement doit correpondre à une méthode virtuelle.

Et évidemment, plutot qu'un tableau de void* tu fais un tableau de ClasseDeBase*

Car bien sur tu peux écrire ClasseDeBase* b = new ClasseFille();
Messages postés
172
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
27 novembre 2009

tu met dans ta classe mere une variable qui servira a reperer les 2 classe.puis a moment de leur construction via le constucteur bin tu leur assigne 2 valeur differente comme ca pour trouver si un objet est la classe mere ou fille tu test la var
Messages postés
172
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
27 novembre 2009

merci c ma marque de fabrique ;)