Je pense que ce qui suit est vraiment basique mais je ne comprends pas vraiment ce que seraient les "avantages" d'un de ces codes.Question sur les références
Ayant ceci:
int main()
{
int a = 10;
f(a);
return 0;
}
Quelle serait la différence entre
void f(int& a)
{
int& b = a;
}
et
void f(int& a)
{
int b = a;
}
En particulier, dans le cas où f
serait plutôt le constructeur d'un classe et où au lieu d'un int
nous avons un gros objet.
J'irais avec la deuxième possibilité ... Que pensez-vous?
Merci.
Edit:
Tout d'abord, en regardant les réponses, je pensais que j'étais mort cérébrale quand je posté la question, mais en réalité j'ai trouvé intéressant (et sous-questions réponses!) Dans les commentaires.
Merci! Donc pour construire une classe sans n'importe quelle copie je devrais avoir un membre qui est une référence, et le constructeur doit également accepter une référence en tant que paramètre? –
Cedric: voir mon édition. –
+1: Je préférerais le terme "référence à const" au lieu de "const reference" – Chubsdad