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 ^^"
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:
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
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.
Partager