On a surdéfinit l'opérateur [], et il renvoit float& afin de pouvoir exister en tant que lvalue. Ce que je ne comprends pas, c'est pourquoi return v[i] a-t-il comme type float& et pas plutôt float ? Et puisqu'on retourne un type float&, n'aurait-il-pas fallu écrire return v+i; ?
asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005 21 janv. 2005 à 07:25
float& => n'est pas un pointeur c une référence je crois, et tous les opérateurs
sur définis doivent retournés une référence et s'il avait mis return v+i il aurait
retourné un float*
une référence ca a tous les avantages des pointeurs sans les inconvénients
Voila j'espere t'avoir aidé meme si tt ce que je raconte n'est pas forcément vrai
(j'y connais pas grd chose sur le sujet)
cs_AmK
Messages postés368Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention27 janvier 20101 21 janv. 2005 à 10:28
return v+i ça te renvoie l'adresse d'un pointeur !
en ce qui concerne le float& , justement c'est le renvoie d'une réference qui crée une valeur gauche .... si tu veux l'utiliser comme valeur droite tu mets un const float&