je la hiérarchie suivante des classesComment remplacer facilement une classe de base
class classOne
{
virtual void abstractMethod() = 0;
};
class classTwo : public classOne
{
};
class classThree : public classTwo
{
};
Tous classOne, classTwo et classThree sont des classes abstraites, et j'ai une autre classe qui définit les méthodes virtuelles pures
class classNonAbstract : public classThree
{
void abstractMethod();
// Couple of new methods
void doIt();
void doItToo();
};
et maintenant je dois différemment ... J'ai besoin comme
class classNonAbstractOne : public classOne
{
void abstractMethod();
// Couple of new methods
void doIt();
void doItToo();
};
class classNonAbstractTwo : public classTwo
{
void abstractMethod();
// Couple of new methods
void doIt();
void doItToo();
};
et
class classNonAbstractThree : public classThree
{
void abstractMethod();
// Couple of new methods
void doIt();
void doItToo();
};
Mais toutes les classes nonAbstract ont les mêmes nouvelles méthodes, avec le même code ... et je voudrais éviter de copier toutes les méthodes et son code à chaque classe nonAbstract. Comment pourrais-je accomplir cela?
Espérons qu'il est compréhensible ...
Si elles contiennent le même code, de quoi avez-vous besoin pour les dérivations spécifiques ClassTwo et ClassOne? – KillianDS
ClassOne a deux méthodes virtuelles qui sont surchargées dans ClassTwo et ClassThree ... ClassNonAbstract est juste ajouter la définition aux méthodes virtuelles pures – JTom
introduire classe intermédiaire avec des fonctionnalités communes ou utiliser des modèles pour créer une classe générique (les modèles sont un sujet quelque peu difficile, vous devra lire à leur sujet si vous ne les utilisez jamais) – Anycorn