Bonjour,

J'ai un petit soucis avec les templates et le polymorphisme :
J'ai une classe Mère abstraite et des classes FilleA et FilleB qui en héritent.
Ma classe Mère va avoir des méthodes que vont devoir surcharger les classe filles.
Seulement, elle vont devoir changer les types des paramètres.
J'ai donc fait comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
abstract class Mère<T>
{
    public abstract T maMéthode(T param)
}
class Fille1 : Mère<T1>
{
    public T1 maMéthode(T1 param)
}
class Fille2 : Mère<T2>
{
    public T2 maMéthode(T2 param)
}
Jusqu'ici tout va bien !
Mais, dans une autre classe j'ai besoin de créer soit une instance de Fille1 soit de fille 2 donc j'ai fait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public static Mère()
{
    if test
        return new Fille1;
    else
        return new Fille2;
}
Mais là il me dit
L'utilisation du type 'Mère<T>' générique requiert les arguments de type '1'