marik7335
Messages postés115Date d'inscriptionsamedi 27 décembre 2003StatutMembreDernière intervention11 mai 2009
-
14 juin 2005 à 19:25
xboxut
Messages postés172Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention27 novembre 2009
-
14 juin 2005 à 19:58
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.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 14 juin 2005 à 19:57
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();
xboxut
Messages postés172Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention27 novembre 20091 14 juin 2005 à 19:42
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