Bonsoir,

je suis face a un probleme etrange ^^'

En effet j'ai mon code d'un arbre binaire implemente dans un vecteur qui compile correctement.

Maintenant il est temp d'ajouter des template ^^"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
template<typename TYPE>
Arbre2V<TYPE>::NoeudV* Arbre2V<TYPE>::NoeudV::filsGauche(){
 //mon code
}
Bien G++ n'aime pas * il demande un constructeur, destructeur ou operatuer de conversion avant...

Donc je me demandait comment faire pour passair d'un type de retour Arbre2V::NoeudV* a un type avec template.

N.B. Arbre2V est en effet une classe template, NoeudV est declare a l'interieur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
template<typename TYPE>
class Arbre2V : public Arbre2<TYPE>{
	public:
		class NoeudV : public Arbre2<TYPE>::Noeud{ /*j'ai du ajouter Arbre2<TYPE>:: sinon il acceptait plus Noeud*/
			public:
                            friend class Arbre2V<TYPE>;
                            /*Suite de la classe*/
                };
                /*Suite de la classe*/
};
Ils héritent d'une structure abstraite similaire (Arbre2 en template et Noeud imbrique).

En ajoutant les template, il met une aussi erreur a la méthode prive d'Arbre2V

Code : Sélectionner tout - Visualiser dans une fenêtre à part
void copier(int, Noeud*);
Et G++ dit que Noeud* n'est pas un type, et le transforme en int pour poursuivre ça compilation (ce qui genere naturellement des erreur âpres)

Avant l'introduction des template, tout cela marchait bien :'(

Comment faire?

Merci d'avance

N.B.2 Je suis oblige d'utiliser a ce type de structure, classe imbrique, par l'énonce.