-
référence ou pointeur
Bonjour,
je suis en train de m'entrainer au développement de classe C++ mais j'ai des petit problème.
je n'arrive pas à comprendre deux choses :
- quand je passe des paramètres à une méthodes il faut envoyer des constantes (bcp mieux), mais faut-il envoyer des pointeurs ou des références ?
- quand je retourne des valeurs après un appelle de méthode est il mieux de retourner des pointeurs ou des références ?
merci
-
Tout dépend de la sémantique que tu veux.
En règle général, pour les constantes, on passe les types primitifs par valeur et les objets par référence constante.
Code:
void function( int i, const Object& o );
Pour ce qui est du choix entre un pointeur nu et une référence, il vaut mieux toujours passer par une référence, ça te garanti que l'objet passé existe bien.
Pour ce qui est du retour, tout dépend de la sémantique.
Si tu renvoi une membre interne de ta classe et que celui-ci a pour volonté d'être modifié de l'extérieur, alors tu passeras une référence. Si c'est toujours une variable interne mais qu'il ne doit pas être modifié de l'extérieur, tu renverras une référence constante.
Si c'est une variable interne à ta méthode, alors tu renvois toujours par valeur (constante ou pas, ça n'a pas d'importance, sauf peut-être pour la lecture, mais perso je préfère pas. Ca laisse sous-entendre sans raison qu'on ne veut pas que la personne modifie cette valeur, alors qu'on s'en fout). Mais ne jamais renvoyer de référence à une variable interne à ta méthode ! C'est une variable temporaire qui sera détruite à la fin de la méthode.