Heritage et type de retour des methodes

Heritage et type de retour des methodes - C++ - Programmation

Marsh Posté le 21-12-2006 à 19:25:43    

Bonjour a tous, ca fait un peut de temp que j'essaie de resoudre ce probleme -_- mais rien a faire
 
Voila j'ai une methode :

Code :
  1. virtual Noeud& filsGauche()  =0;


define dans una classe abstrate Noeud
 
Ce une reference, mais etant abstraite je n'ai pas trouve autre chose pour eviter que G++ ne me tape pas trop fort
 
Maintenant je cree la classe NoeudV et je veut redefinir la methode:
 

Code :
  1. NoeudV& filsGauche() {return NoeudV(2*index+1,infos);}


 
Bon ca ne marche pas, car on renvoie un NoeudV& qui est une reference vers un temporaire qui n'existe plus, alors je met  
 

Code :
  1. NoeudV filsGauche() {return NoeudV(2*index+1,infos);}


 
Mais il aprecie pas, il trouve que ce pas la meme -_- or si j'avait bien compris le type de retour n'est pas dans la signature de la fonction...
 
Comment faire :'(


Message édité par belfo le 21-12-2006 à 19:35:47
Reply

Marsh Posté le 21-12-2006 à 19:25:43   

Reply

Marsh Posté le 21-12-2006 à 20:33:33    

Perso je retournerais un pointeur.

Reply

Marsh Posté le 21-12-2006 à 20:51:18    

comment ca?

Reply

Marsh Posté le 21-12-2006 à 20:56:33    

bha un Noeud*
 
en jouant evidemment avec des auto_ptr

Reply

Marsh Posté le 21-12-2006 à 20:57:59    

je suis perdu la.
 
J'ai bien essaier de renvoier un NouedV* (dans la 2eme) mais il y a bien une erreur sur la conversion (au niveau du return)
 
Et tu endent quoi par auto_ptr.

Reply

Marsh Posté le 21-12-2006 à 21:20:36    

bha toute doivent renvoyer un Noeud*

Reply

Marsh Posté le 21-12-2006 à 21:21:44    

merci -_- ca j'avait compris

Reply

Marsh Posté le 05-01-2007 à 01:24:45    

ben fo renvoyer un pointeur alors

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed