Héritage

Le
Phile
Bonjours à tous,

J'ai une classe B & C qui hérite de A.
Je dois un plémenter une fonction :
- f(A a) {}
Cependant je dois pouvoir mettre f(B) ou f(C). Pour insert ses objet
dans un vecteur vector<A *> list;

Avez vous une idée comment faire cela ?

Merci à tous.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
espie
Le #25075292
In article Phile
Bonjours à tous,

J'ai une classe B & C qui hérite de A.
Je dois un plémenter une fonction :
- f(A a) {}
Cependant je dois pouvoir mettre f(B) ou f(C). Pour insert ses objet
dans un vecteur vector<A *> list;

Avez vous une idée comment faire cela ?

Merci à tous.



Ben deja, si tu passes tes objets par valeur, ca va pas marcher (recherche
slicing pour les details), donc commence par prototyper

f(A& a)
histoire de passer une reference. Du coup, ton objet ne sera pas recopié, et
donc tu auras bien un objet du bon type dans ta fonction.

Ce qui devrait suffire a pouvoir prendre son adresse et mettre un pointeur
dans un container...

Evidemment, ca ne sera utile que si tu as une facon de connaitre le "vrai" type
de l'objet que tu mets dans ton container, donc generalement, de l'heritage
avec methodes virtuelles (ou alors sinon, une facon externe de savoir ce que
c'etait, mais c'est beaucoup moins objet).

Sans plus de details concernant la question, difficile de t'aider. Si c'est
une question de cours, relis attentivement ton cours. Serait surprenant
qu'il n'y ait pas quelques paragraphes sur ces questions, qui constituent
un peu le ba-BA du polymorphisme a base d'heritage en C++...
Publicité
Poster une réponse
Anonyme