Bonjour, j'ai une classe X avec 2 méthodes :
et deux classes Y et Z qui héritent publiquement de X :Code:
1
2
3
4
5 class X { virtual node getNode () const = 0; virtual node getParent() const = 0; };
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:
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 (); };
L'implémentation de ma méthode est toute simple (par exemple pour la classe Y :Code:
1
2
3
4 cannot instantiate abstract class due to following members: ... see declaration of 'getNode'
Comment dois-je faire pour garder à l'identique ma classe X et instancier correctement Y et Z pour ne plus avoir d'erreur ?Code:
1
2
3
4
5 node Y::getNode () { return (m_node); }
Je précise que ma classe X doit rester INCHANGEE.
Le seul moyen que j'ai trouvé est de virer leet instancier mes méthodes pour la classe X. Au passage, quel est le rôle de l'écriture const = 0 svp ?Code:const = 0
Merci[/quote][/code]