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;
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++...
In article <kav90n$9rq$1@speranza.aioe.org>,
Phile <Phile@example.invalid> wrote:
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++...
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++...