Fonction template et classe virtuelle
Bonjour à tous,
J'essaye de résoudre une erreur de compilation du type cannot declare variable to be of abstract type.
Le design de l'application est simple, il s'agit d'une classe virtuelle qui hérite d'une classe virtuelle pure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class A
{
virtual void fonction1() = 0;
};
class B : public virtual A
{
B(int x, int y);
virtual void fonction1();
};
B::B(int x, int y)
{ blabla }
void B::fonction1(){
//blabla
} |
Jusque là, tout fonctionne bien. Mais ça se corse lorsque j'implémente une nouvelle fonction template de ce type (dans un fichier à part) :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
template <typename X>
void ma_fonction( int valeur)
{
// Et quelque part
X variable(valeur, another_valeur);
}
// Appel de la fonction dans le main ;
ma_fonction<B>(2); |
Quelle est le problème ?
Merci d'avance.