surcharge de l'opérateur =

surcharge de l'opérateur = - C++ - Programmation

Marsh Posté le 02-08-2007 à 11:46:04    

bonjour,
 
je ne comprends pas à quoi sert le premier '&' de la ligne qui suit :
 
vect & vect::operator= (const vect &v);
 
quelqu'un peut m'aider ?

Reply

Marsh Posté le 02-08-2007 à 11:46:04   

Reply

Marsh Posté le 02-08-2007 à 11:48:12    

ca veut dire que la fonction renvoit une référence

Reply

Marsh Posté le 02-08-2007 à 11:51:42    

ha d'accord,  mais la dernière ligne de la fonction est  
 
return *this;
 
c'est normal ?

Reply

Marsh Posté le 02-08-2007 à 12:15:06    

autre exemple :
 
int &vect:: operator[] (int i)
{
     return adr[i];
}
 
 
adr est un pointeur sur un tableau d'entiers. lorsqu'on fait "return adr[i]" on une valeur entière exact ?     alors pourquoi cette référence au début ?

Reply

Marsh Posté le 02-08-2007 à 12:15:18    

oui. this est un pointeur  vers l'objet courant. En le déréférancant tu renvois bien une instance

Reply

Marsh Posté le 02-08-2007 à 12:16:15    

ben2261 a écrit :

autre exemple :
 
int &vect:: operator[] (int i)
{
     return adr[i];
}
 
 
adr est un pointeur sur un tableau d'entiers. lorsqu'on fait "return adr[i]" on une valeur entière exact ?     alors pourquoi cette référence au début ?


 
pour pouvoir écrire :
 
vect[0] = 5;
 
si tu renvoyer une int et non un int&, tu ne pourrais pas modifier le contenu de ton tableau.
Revois les bases sur les références dans un bouquins, tu manquent de recul sur cette notion.

Reply

Marsh Posté le 02-08-2007 à 12:21:09    

d'accord merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed