Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Héritage

1 réponse
Avatar
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.

1 réponse

Avatar
espie
In article <kav90n$9rq$,
Phile wrote:
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++...