volia, en gros je dois réaliser un projet qui consiste en une classe (abstraite) d'arbre binaire qui peut s'instancier aussi bien pour une implantation de vecteurs que de pointeurs. En particulier, toutes ces classes doivent être transformées (en template) pour accepter un type de base (i.e. des informations) paramétrique.
Donc, j'ai créer ma classe principale (absraite) "arbre" d'ou je dérive une classe "arbrev" (implémentation sous forme de vecteur) et "arbrep" (implémentation sous forme de pointeurs). TOUTES ces classes sont des templates de paramettre I, car chaque noeud (qui est redéclaré au sein de mes classes dérivées) doit pouvoir contenir une info de type I.
Voila mon problème (le plus gros...) : je rencontre une erreur lors de la compilation pour les fonctions qui renvoient un noeud. Par exemple, la fonction qui renvoie le fils gauche d'un noeud :
ArbreBinV::Noeud ArbreBinV::Noeud::filsGauche() const
{
return Noeud(2*index + 1, infos);
}
à ce moment on me dit que j'utile la classe ArbreBinV sans paramettres templates et donc je fais...
template<typename I>
ArbreBinV<I>::Noeud ArbreBinV<I>::Noeud::filsGauche() const
{
return Noeud(2*index + 1, infos);
}
mais alors il dit qu'il s'attend à un consrtucteur, destructeur ou une convertion de type avant ArbreBinV, mais aussi qu'il s'attend à un ";" avant ArbreBinV
j'espère que j'ai été assez claire, je ne vous cache pas que je ne suis pas un grand programmeur ; je connais moyenement la syntaxe c++ et des recherches sur le net ne m'ont que peu aidé... Un grand merci d'avance
jeancparis@hotmail.com
Partager