Hum, tu aurais dû peut-être suivre le conseil que l'on t'avait donné et changer de support de cours.
Sinon, la fonction prend des références sur 2 variables et retourne une référence sur l'une des deux variables. Cela permet donc de modifier une seule des 2 variables.
Cette écriture est un peut étrange, mais pas interdite. Je pense qu'on la trouve plus souvent sous la forme de l'idiome des listes chaînées (named parameter), par exemple avec les QString :
QString("une chaîne avec %1 paramètres de types %2.").arg(10).arg("entier");
qui génère
"une chaîne avec 10 paramètres de types entier."
Sinon, généralement, retourner une référence peut être mauvais voir dangereux, il faut faire attention que la variable n'est pas locale à la fonction. Et dans le cas d'une variable membre, on revient sur le problème des getter, qui sont une mauvaise pratique de la POO

Envoyé par
white_tentacle
Dès que tu as des objets à sémantique d’entité (non-copiables), ça devient rapidement indispensable. Quitte à ce que la référence soit constante, d’ailleurs, pour s’assurer qu’on ne modifie pas l’objet.
Modulo le problème d'utilisation des getters
Partager