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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Passage d'arguments par référence - utilisation d'argument en sortie

n°228060
El_gringo
Posté le 15-10-2002 à 10:20:02  profilanswer
 

Reprise du message précédent :
PS : j'ai pas l'âme d'un chef !

mood
Publicité
Posté le 15-10-2002 à 10:20:02  profilanswer
 

n°228062
darklord
You're welcome
Posté le 15-10-2002 à 10:25:52  profilanswer
 

rah te fâche pas :)


---------------
Just because you feel good does not make you right
n°228093
BifaceMcLe​OD
The HighGlandeur
Posté le 15-10-2002 à 11:28:56  profilanswer
 

Bon, pour en revenir à la question du topic, je donne évidemment raison à lorill : si on modifie la valeur d'un objet passé en paramètre dans une fonction, il sera toujours modifié après être sorti de la fonction ; par contre, si on modifie la référence sur l'objet passé en paramètre, l'objet passé en argument ne sera pas modifié après être sorti de la fonction. Et évidemment, difficile de modifier la valeur d'une instance d'une classe non mutable (comme String ou Integer)...
 
Mais il y a plusieurs autres solutions pour résoudre le problème :

  • Retourner l'objet modifié. C'est ce qu'il y a de plus simple et c'est propre. Et ça marche pour les instances de classes non mutables. Mais ça coince dès qu'on a plusieurs objets à retourner.
  • Définir une classe n-uplet qui contient l'ensemble des objets à retourner. Eventuellement, tous ses attributs peuvent être publics, puisqu'on ne se sert pas deu concept d'abstraction ici. C'est tout à fait propre, mais l'inconvénient, c'est que cela oblige à créer une instance supplémentaire à l'exécution (soit la fonction crée cette instance, soit on lui passe en paramètre, ce qui permet à plusieurs appels à la fonction de partager cette instance "temporaire" ).
  • Passer en paramètre un tableau de taille 1 contenant l'objet à modifier, plutôt que passer simplement l'objet. Ce qui revient à passer une référence sur la référence vers l'objet. C'est bien crade, mais ça marche, et c'est très efficace à l'exécution.


Message édité par BifaceMcLeOD le 15-10-2002 à 11:30:32
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Ca correspond a quoi le taux d'utilisation d'un cpu?Gérer "deux volumes" sur une meme sortie
[PHP] Passage de paramètrepassage de parametres entre une applet et une servlet
[MFC] Utilisation de la touche TAB dans un RichEditPassage d'objets Java à une application C+++
Programmer différents niveaux d'utilisation CPU[HTML, JS] mise en forme et utilisation des div, frames, ...
Utilisation de PerlUtilisation d'une union : probleme
Plus de sujets relatifs à : Passage d'arguments par référence - utilisation d'argument en sortie


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