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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Aide sur passage de parametre...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Aide sur passage de parametre...

n°128825
Swell
Posté le 20-04-2002 à 11:09:56  profilanswer
 

QQn peut il me dire la difference en C++ entre un:
 
void prog(int *);
 
et
 
void prog(int *&);
 
Merci!

mood
Publicité
Posté le 20-04-2002 à 11:09:56  profilanswer
 

n°128830
Krueger
tout salaire demande dutravail
Posté le 20-04-2002 à 11:30:01  profilanswer
 

Dans le premier cas le pointeur est passé par valeur, tandis que dans le second il est passé par référence.  
 
Par exemple:  

Code :
  1. void prog(int * p)
  2. {
  3.   int n = 0;
  4.   p = &n; // le pointeur reste inchangé dans le code appelant cette méthode  
  5. }
  6. void prog(int * &p)
  7. {
  8.   int n = 0;
  9.   p = &n; // le pointeur pointe sur l'adresse de n dans le code appelant (mais ça plantera car n sera désalloué à la fin de cette méthode)  
  10. }


 
C'est tout comme la différence entre int et int & par exemple, si ça peut t'éclaircir.
 
++@

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°128834
weblook$
happy face
Posté le 20-04-2002 à 12:26:12  profilanswer
 

ce serait plutôt:
 
paramètre passé par adresse:     function(int* var)  
par référence:                           function(int& var)        
Et là par valeur:                        function(int var)
 
 
un petit ex:
main()
{
int var=5;
reference(var);    
                       //var vaut 6
adresse(&var);
                       //var vaut 7
valeur(var);
                       //var vaut 7
}
référence(int& var)
{
 var++;
}
 
adresse(int* var)
{
 *var++;
}
valeur(int var)
{
  var++;
}
 
 
ces deux écriture sont identiques le passage par référence à été ajouté au langage C++ pour faciliter la manipulation et rendre transaparent l'utilisation d'un ptr.
 
 
Par contre ça connaît pas: int* &b       :ouch:

 

[jfdsdjhfuetppo]--Message édité par weblook$--[/jfdsdjhfuetppo]

n°128839
Krueger
tout salaire demande dutravail
Posté le 20-04-2002 à 13:05:52  profilanswer
 

Oups, quand je parlais de valeur je voulais dire la valeur du pointeur, c'est à dire l'adresse qu'il contient. J'avais généralisé:  
f(UnType param); -> valeur  
f(UnType & param); -> référence  
 
Dans UnType on peut mettre d'importe quel type comme int, int *, int **, string, etc.
 
int* &b c'est une référence vers un pointeur vers un int. :hello:

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi

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

  [C++] Aide sur passage de parametre...

 

Sujets relatifs
Fichier d'aide sur Java ?[PHP] Problème dans le passage des paramètres
Besoin d aide !!!!Aide pour patch mozilla
Aide pour mon concours !!![Prob en C++] - Passage d'object dans un vecteur
[VB] Comment faire un parametre de retour recuperable par une autre ap[Script SH] Modifier un paramètre à la volée
[XML] Créer du HTML à partir de XML à l'aide du PHP...un peu d'aide sur les boucles imbriquées
Plus de sujets relatifs à : [C++] Aide sur passage de parametre...


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