Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1543 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probleme de references

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de references

n°1239939
asphro
Posté le 06-11-2005 à 20:51:51  profilanswer
 

Bonjour,
 
J'essaye de comprendre un code que j'ai ecrit en fait cela se porte sur la fct avec le proto construiren(Noeud *&,int)
 
Je n'arrive pas expliquer pourquoi avec ce proto cela marche, et pas avec ce proto construiren(Noeud *, int), ici mon arbre ne construit qu'un noeud
 
merci de m'expliquer et de me dire si cela ce fait car j'en doute je trouve ce la byzarre
 

Code :
  1. //
  2. #include <iostream>
  3. #include "arbre.h"
  4. using namespace std;
  5. Arbre::Arbre(){
  6.   racine=NULL;
  7.   noeudc=NULL;
  8. }
  9. void Arbre::construire(int v){
  10.  
  11.   construiren(racine,v);
  12. }
  13. void Arbre::construiren(Noeud *&r, int v){
  14.   if(r==NULL) {
  15.     r = new Noeud;
  16.     r->v = v;
  17.     r->fg= NULL;
  18.     r->fd = NULL;
  19.     if(racine==NULL)  racine=r;
  20.     cout << *&r <<  " " << &r << endl;
  21.    }
  22.   else {
  23.     if(v <= r->v){
  24.       construiren(r->fg,v);
  25.     }
  26.     else {
  27.       construiren(r->fd,v);
  28.     }
  29. }
  30. }
  31. void Arbre::affiche(){
  32.   affichen(racine);
  33.  
  34. }
  35. void Arbre::affichen(Noeud *r){
  36.   if(r!=NULL){
  37.     // cout<< r->v << " " << "v" << endl;
  38.     affichen(r->fg);
  39.     affichen(r->fd);
  40.   }
  41. }


Message édité par asphro le 06-11-2005 à 20:52:18
mood
Publicité
Posté le 06-11-2005 à 20:51:51  profilanswer
 

n°1239940
elianor
bannie 17 fois
Posté le 06-11-2005 à 20:52:38  profilanswer
 

[:banguy]  
 
de retour ici ?


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1239949
asphro
Posté le 06-11-2005 à 21:03:55  profilanswer
 

Le retour de quoi, c'est un void...
 
 
PS:Ceci est de l'humour...sinon...confére  message d'en  dessous...


Message édité par asphro le 06-11-2005 à 21:28:31
n°1239953
KangOl
Profil : pointeur
Posté le 06-11-2005 à 21:19:04  profilanswer
 

[:rolf]
 
et le pire c'est qu'il le fait pas expres


Message édité par KangOl le 06-11-2005 à 21:19:27

---------------
Nos estans firs di nosse pitite patreye...
n°1240123
Joel F
Real men use unique_ptr
Posté le 07-11-2005 à 00:08:21  profilanswer
 

Noeud* r , tu passe un pointeur par valuer, ton code le modifie mais ne le renvoie pas.
 
C'est soit Noeud*& soit Noeud**

n°1240574
asphro
Posté le 07-11-2005 à 16:32:02  profilanswer
 

Code :
  1. void Arbre::construiren(Noeud **r, int v){
  2.   if(*r==NULL) {
  3.     *r = new Noeud;
  4.     (*r)->v = v;
  5.     (*r)->fg= NULL;
  6.     (*r)->fd = NULL;
  7.     if(racine==NULL)  racine=*r;
  8.  
  9.    }
  10.   else {
  11.     if(v <= (*r)->v){
  12.       construiren(&((*r)->fg),v);
  13.     }
  14.     else {
  15.       construiren(&((*r)->fd),v);
  16.     }
  17. }
  18. }


 
ah oui en effet en recuperant l'adresse du pointeur cela revient ua même que la reférence sur le pointeurs (si je dis une connerie corrigé moi surtout), j'ai un peu de mal avec c'est pointeur et reference sorti d'un certain contexte....
 
mais l'ecriture est drolement sale ecrit ainsi...

n°1240605
Joel F
Real men use unique_ptr
Posté le 07-11-2005 à 17:10:37  profilanswer
 

Noeud*& c'est mieux quand même :o
Le vrai truc sal c'est le Noeud* a la base ...

n°1240606
asphro
Posté le 07-11-2005 à 17:12:44  profilanswer
 

j'aurai du redefinir un type noeud *

n°1240607
Joel F
Real men use unique_ptr
Posté le 07-11-2005 à 17:13:42  profilanswer
 

non mais te demandais si le ponteur etait necessaire, y a quand même des kilos de conteneur dans std et dans boost ...

n°1240614
asphro
Posté le 07-11-2005 à 17:22:20  profilanswer
 

non mais le but etant à la base de comprendre les pointeurs et les references...donc je ne vais pas m'amuser à l'outrepasser.
 
etant novice je ne connais pas encore toutes les lib std, ou la boost lib.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probleme de references

 

Sujets relatifs
Probleme de répertoireprobleme entre script et GIF animes
problème de migration sur 1and1probleme programmation
Petit problème avec mon design cssProbleme css avec mozilla
[PHP XML] problème de conversion UTF-16 -> ISO-8859-1[debutant] - Probleme de saisie avec fgets.
[php] probleme avec ecriture de fichier[VBA Excel] Problème avec les références
Plus de sujets relatifs à : Probleme de references


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR