Bonjour � tous,

sur vos conseils, je suis parti sur l'impl�mentation d'un ensemble de classes en utilisant le Template Method. Ca donne � peu pr�s ceci:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Mere
{
[...]
void  MethodImpl();
virtual void MethodDerivate() = 0;
};
 
class Fille1 : public Mere
{
void MethodDerivate(){<mon code ici>}
};
 
class Fille2 : public Mere
{
void MethodDerivate(){<mon code (différent) ici>}
};
Cela fonctionait tr�s bien. Mais voil� qu'aujourd'hui, je dois apporter une modification. En effet, la classe Fille2 va maintenant devoir g�rer des donn�es propres � elle que Fille1 n'aura pas. Prenons un tableau de int pour l'exemple:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
class Fille2 : public Mere
{
void MethodDerivate(){<mon code (différent) ici>}
vector<int> m_array;
};
Jusque l�, tout va bien. Je voudrais maintenant une m�thode qui modifie ce tableau, qui le vide par exemple. Donc j'ai fait cela:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Mere
{
[...]
void  MethodImpl();
virtual void MethodDerivate() = 0;
virtual void ClearArray() = 0;
};
 
class Fille1 : public Mere
{
void MethodDerivate(){<mon code ici>}
void ClearArray(){m_array.clear();}
vector<int> m_array;
};
 
class Fille2 : public Mere
{
void MethodDerivate(){<mon code (différent) ici>}
void ClearArray(){}
};
Jusqu'ici tout va bien. Le probl�me c'est que maintenant, je voudrais appeler ClearArray depuis une m�thode impl�ment�e dans la classe Mere, ce qui nous donnerais quelque chose comme cela:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Mere
{
[...]
void  MethodImpl(ClearArray()); //modif ici
virtual void MethodDerivate() = 0;
virtual void ClearArray() = 0;
};

class Fille1 : public Mere
{
void MethodDerivate(){<mon code ici>}
void ClearArray(){m_array.clear();}
vector<int> m_array;
};

class Fille2 : public Mere
{
void MethodDerivate(){<mon code (diff�rent) ici>}
void ClearArray(){}
};
Mais l�, �a ne fonctionne pas. Ca plante � l'ex�cution:
R6025: pure virtual call.
J'esp�re avoir �t� clair, et si vous m'avez suivi, je serais bien aise de recevoir vos conseils avis�s

merci.