Bonjour, j'ai une classe X avec 2 méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class X
{
   virtual node getNode () const = 0;
   virtual node getParent() const = 0;
};
et deux classes Y et Z qui héritent publiquement de X :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
class Y : public X 
{
   ...
   node getNode ();
   node getParent ();
};
 
class Z : public Y
{
   ...
   node getNode ();
   node getParent ();
};
Je définis les fonctions virtuelles de X getNode et getParent dans les classes Z et Y et j'ai l'erreur de LINK suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
cannot instantiate abstract class due to following members:
... 
see declaration of 'getNode'
L'implémentation de ma méthode est toute simple (par exemple pour la classe Y :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
node Y::getNode ()
{
   return (m_node);
}
Comment dois-je faire pour garder à l'identique ma classe X et instancier correctement Y et Z pour ne plus avoir d'erreur ?
Je précise que ma classe X doit rester INCHANGEE.

Le seul moyen que j'ai trouvé est de virer le et instancier mes méthodes pour la classe X. Au passage, quel est le rôle de l'écriture const = 0 svp ?
Merci[/quote][/code]