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

  FORUM HardWare.fr
  Programmation
  C++

  retour par reference ou par copie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

retour par reference ou par copie

n°727584
cris56
Posté le 16-05-2004 à 20:42:09  profilanswer
 


en fait j'aimerais savoir ce qu'implique un retour par reference,  mis a part que c'est plus rapide, quelles contraintes ca pose au niveau du code?

mood
Publicité
Posté le 16-05-2004 à 20:42:09  profilanswer
 

n°727656
Taz
bisounours-codeur
Posté le 16-05-2004 à 23:04:19  profilanswer
 

qu'il faut que tu renvoies une référence sur quelque chose qui existe dans le contexte appelant

n°727661
cris56
Posté le 16-05-2004 à 23:10:52  profilanswer
 

ok, en gros si je créé l'objet dans la fonction il faut le retourner par copie, c'est ca?

n°727665
Taz
bisounours-codeur
Posté le 16-05-2004 à 23:13:00  profilanswer
 

je sais pas, d'après ce que je viens de te dire, tu en déduis quoi ? est-ce que tu peux me donner un exemple ou on peut créer un objet dans une fonction et le retourner par référence ?

n°727667
cris56
Posté le 16-05-2004 à 23:15:13  profilanswer
 

ben non, d'apres ce que j'ai compris on peut pas retourner par reference un objet crée dans une fonction

n°727683
Taz
bisounours-codeur
Posté le 16-05-2004 à 23:26:31  profilanswer
 

ça n'est pas ce que j'ai dit

n°727691
cris56
Posté le 16-05-2004 à 23:31:12  profilanswer
 

bon, hesite pas a dir si g rien piger, mais ca serait pas un exemple ca ?
 
Object &func()
{
static Object o;
...
return o;
}

n°727701
Taz
bisounours-codeur
Posté le 16-05-2004 à 23:40:42  profilanswer
 

ou tout simplement une allocation dnamique ...

n°727714
cris56
Posté le 16-05-2004 à 23:49:04  profilanswer
 

ok, merci

n°727810
Taz
bisounours-codeur
Posté le 17-05-2004 à 02:21:25  profilanswer
 

une autre chose pas mal aussi, c'est retournée une référence sur un paramètre lui même passé par référence

mood
Publicité
Posté le 17-05-2004 à 02:21:25  profilanswer
 

n°727811
nraynaud
lol
Posté le 17-05-2004 à 02:49:13  profilanswer
 

(en passage par copie, en fait c'est HS)
y'a pas une grosse feinte si on construit l'objet dans l'expression du return (il serait alloué dans son emplacement de destination directement, sans passer par la case recopie) ? il me semble avoir lu un truc comme ça une fois.


---------------
trainoo.com, c'est fini
n°727880
Taz
bisounours-codeur
Posté le 17-05-2004 à 09:24:24  profilanswer
 

non, pas de feinte, juste une optimisation permise que tout les compilateurs ne font pas. donc toi tu ne peux rien faire.
 
mais rien ne t'empêche d'éviter une autre copie en rattrapant le résultat par &
 
R &r( f() );

n°729575
cris56
Posté le 17-05-2004 à 21:39:03  profilanswer
 

oui c'est vrai ca, je l'avais deja lu et il parait meme qu'il peuve supprimer la creation de la variable temporaire si elle sert de valeur retour
 
merci encore pour ces precision
 
"une autre chose pas mal aussi, c'est retournée une référence sur un paramètre lui même passé par référence"
 
en fait ca je le fais souvent, ca m'enerve, en fait je crois que j'avais piger  :fou:
 
j'ai une autre question, j'ai vu qu'il en avait qui regardait le listing asm generer par le compilo, pour par exemple verifier les optimisation qu'il fait a ce niveau
donc je voudrais savoir si par curiosité il etait possible de voir si le compilo fait une copie dans ce cas (dans le cas ou la valeur de retour est construite dans le return)?
 
ou peut etre est-ce inutile ?  
 
merci d'avance

n°729681
Taz
bisounours-codeur
Posté le 17-05-2004 à 23:53:33  profilanswer
 

oui : tu mets des cout dans tout ce qui constitue la forme de coplien
 
constructeur par défaut
constructeur de recopie
operateur=
destructeur

n°729696
cris56
Posté le 18-05-2004 à 00:03:01  profilanswer
 

merci, beaucoup plus simple comme ca


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

  retour par reference ou par copie

 

Sujets relatifs
SVG / Java / Batik -> retour d'expériences...[java] JTextArea : retour à la ligne ?
Retour chariotdestructeur & reference
Suppression retour chariot[Résolu] Eviter un retour a la ligne avant un bloc <div></div>
comment empecher un retour sur Internet explorer ?Etendre la référence d'une plage de données
Windev : reconnaitre le retour chariot dans une chaîne[PLSQL Oracle 8i] : remplir un curseur de référence
Plus de sujets relatifs à : retour par reference ou par copie


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