Créer un objet de type classe template sans savoir le type.
Bonjour à tous et à toutes.
J'aimerais savoir si il est possible de créer un objet d'une classe template sans savoir le type a l'avance? Je m'explique :
J'ai une classe mere A contenant des méthodes abstraite:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
template <class RESULT_TYPE>
class A
{
public:
A(){}
virtual RESULT_TYPE getValue(void) = 0;
virtual void setValue(RESULT_TYPE v) = 0;
virtual bool doSomething(void) = 0;
private:
RESULT_TYPE RESULT;
} |
J'ai créé plusieurs classes fille dérivant de cette classe, histoire de pouvoir réécrire doSomething suivant les classes filles.
Maintenant que mes classes mères et filles sont la, je peux donc écrire par exemple :
Code:
1 2 3 4 5 6 7 8
|
B<int, int, int> b;
C<int, int, int> c;
A<int> *a1= &b;
A<int> *a2 = &c;
a1->doSomething();
a2->doSomething(); |
Mon but maintenant est de pouvoir écrire :
Code:
1 2 3 4 5 6 7 8
|
B<int, int, int> b;
C<int, int, int> c;
A *a1= &b;
A *a2 = &c;
a1->doSomething();
a2->doSomething(); |
donc ne plus à avoir a spécifier le type en déclarant un objet de classe A (histoire de pouvoir plus tard creer des fonctions prenant en paramètre un A* et non un A<type>* .
Je voulais savoir si c'était possible, et si oui, comment faire? Mes recherches ont été veines :(
Je vous souhaite une bonne journée !