Bonjour
J'ai la hiérarchie de classes suivante: A0, A1, A2, A3, A4... sont des sous-classes de A.
J'ai besoin d'instancier une de ces sous-classes selon la valeur d'une variable n. Pour le moment j'ai un code qui ressemble à ca:
A* p;
switch(n)
{
case 0:
p = new A1();
break;
case 1:
p = new A1();
break;
...
}
J'aimerais une solution plus jolie que ca, d'autant qu'il y a en réalité environ 15 sous classes.
J'ai pensé à un tableau de A* contenant un spécimen de chaque sous-classe, et utiliser une méthode virtual A* A::make(...)=0 pour créer un objet (les constructeurs actuels des sous-classes prennent les mêmes paramètres).
Cette solution vous semble-t-elle plus efficace, ou en avez vous une autre?