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

  FORUM HardWare.fr
  Programmation
  C++

  Référence ou pointeurs?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Référence ou pointeurs?

n°1852407
kray
Bad show?
Posté le 17-02-2009 à 22:57:32  profilanswer
 

Bonjour,
 
je me pose une question existentielle quant à la différence entre un passage par référence et par adresse.
Avec Qt, j'ai une méthode qui Imprime un élément. Elle utilise l'objet QPainter(QPaintDevice *).
Cette méthode Imprime passe en paramètre la QPaintDevice.
D'habitude, par "flemme", je passe toujours en référence mes objets.
Sauf que là je m'interroge sur l'utilité de la chose
 
Car j'ai dans un cas  
 

Code :
  1. MaClasse::Imprime(QPaintDevice &device)
  2. {
  3. ...
  4. QPainter painter(&device) ;//adresse de la référence=adresse du référent
  5. ...
  6. }


ce qui me parait tiré par les cheveux(prendre l'adresse d'une référence)
et dans l'autre
 

Code :
  1. MaClasse::Imprime(QPaintDevice *device)
  2. {
  3. ...
  4. QPainter painter(device);
  5. ...
  6. }


 
Qui me parait plus logique, mais on m'a toujours dit d'utiliser des réfs.
Je pense que les deux font la même chose exactement, mais en terme de performance et de "bien coder", c'est pareil?
 
Merci


---------------
I guess my real ennemy is me
mood
Publicité
Posté le 17-02-2009 à 22:57:32  profilanswer
 

n°1852409
theshockwa​ve
I work at a firm named Koslow
Posté le 17-02-2009 à 23:11:16  profilanswer
 

en terme de performance, c'est strictement identique, après, les goûts et les couleurs ...


---------------
last.fm
n°1852436
Anonymouse
Posté le 18-02-2009 à 02:20:34  profilanswer
 

theshockwave a écrit :

en terme de performance, c'est strictement identique, après, les goûts et les couleurs ...


 
Notre prof nous a toujours dit que derrière les références on a des pointeurs donc ça revient au même.
 
Je pense que l'on recommande d'utiliser les références car leur emploi est plus naturel que celui des pointeurs.
 
De plus elles ont l'avantage de ne pouvoir jamais être initialisée à NULL ce qui élimine d'office certaines erreurs.

n°1852442
Joel F
Real men use unique_ptr
Posté le 18-02-2009 à 07:28:41  profilanswer
 

prendre l'adresse d'une référence est parfaitement valide et fait ce que l'on pense (aka prendre l'adresse du referee).
 
Par contre, je m'inquièterais plus de passer des références avec le bon niveau de constness.

n°1852513
Un Program​meur
Posté le 18-02-2009 à 11:58:11  profilanswer
 

Hormis quelques cas bien contraints (operateurs, necessite de pouvoir passer NULL), le choix est assez arbitraire et releve plutot de conventions que d'autre chose.  Personnellement, je ne vais pas passer une reference si elle sera conservee au dela du retour de la fonction (de la duree de vie de l'objet pour un constructeur).  De meme, je ne vais pas passer une reference si je fais un delete sur le pointeur correspondant.  Mais ce choix n'est pas universel, certains utilisent simplement le fait que la reference ne peut pas etre NULL.
 
Joel, que ce soit des pointeurs ou des references, les problemes de const me semblent parfaitement identiques.

n°1852939
weblook$$
Posté le 19-02-2009 à 13:31:52  profilanswer
 

Un Programmeur a écrit :

 
 
Joel, que ce soit des pointeurs ou des references, les problemes de const me semblent parfaitement identiques.


+1

n°1852954
Joel F
Real men use unique_ptr
Posté le 19-02-2009 à 14:02:10  profilanswer
 

Un Programmeur a écrit :

Joel, que ce soit des pointeurs ou des references, les problemes de const me semblent parfaitement identiques.


Oui, je faisais juste une remarque sur le snippet posté plus haut ;)

n°1854404
kray
Bad show?
Posté le 23-02-2009 à 22:57:21  profilanswer
 

Ok, merci pour les réponses. Je vais donc plutôt vérifier le coté "constance"(français?) de ce que je passe et je vais passer par réf.


---------------
I guess my real ennemy is me
n°1855399
Joel F
Real men use unique_ptr
Posté le 26-02-2009 à 09:52:43  profilanswer
 

on dit constitude :p


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

  Référence ou pointeurs?

 

Sujets relatifs
retour de fonction par référence et chainage d'opérationRéférence nulle
Templates et pointeursFormule référence autre classeur...
Les pointeurs en algoRéférence DirectX pour l'utilisateur final
pointeursgetteurs et setteurs sur des pointeurs
Conteneur de self-reference [resolu][CPP] precision sur les pointeurs et reference
Plus de sujets relatifs à : Référence ou pointeurs?


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