Il y a une petite erreur de conception dans ton raisonnement.
Si une méthode est propre à une classe fille, elle
ne doit pas apparaître dans la classe mère, tout simplement.
Reprenons ton exemple:
Code C/C++ :
class A {};
class A1 : public A
{
public:
void methode();
};
La solution est simple, tu n'écris la méthode que dans A1. Ensuite, si tu veux l'utiliser tu peux faire ceci:
Code C/C++ :
A* maclasse_generique = new A1;
// Tu ne peux pas faire: maclasse_generique.methode()
// en revanche, tu peux tout à fait faire:
A1* pa = static_cast<A1*>(maclasse_generique);
pa->methode();
J'ai utilisé static_cast parce que j'étais sur du résultat, mais en cas de doute j'aurais pu aussi faire un dynamic_cast (plus lent mais peut dire si la conversion a échouée).
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question