C++ Utilisation de références comme valeurs de retour
L'utilisation de références au lieu de pointeurs rend les programmes C++ plus faciles à lire et à maintenir. Les fonctions C++ peuvent renvoyer une référence d'une manière similaire au renvoi d'un pointeur.
Lorsqu'une fonction renvoie une référence, elle renvoie un pointeur implicite vers la valeur de retour. De cette façon, la fonction peut être placée à gauche d'une instruction d'affectation. Par exemple, considérons le programme simple suivant :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
改变前的值 vals[0] = 10.1 vals[1] = 12.6 vals[2] = 33.1 vals[3] = 24.1 vals[4] = 50 改变后的值 vals[0] = 10.1 vals[1] = 20.23 vals[2] = 33.1 vals[3] = 70.8 vals[4] = 50
Lorsque vous renvoyez une référence, faites attention à ce que l'objet référencé ne sorte pas de la portée. Par conséquent, renvoyer une référence à une variable locale est illégal, mais une référence à une variable statique peut être renvoyée.
Voici un exemple qui montre comment renvoyer une référence à une variable statique :
Exemple
using namespace std;
// renvoyer une référence à une variable statique
int& getStaticRef() {
static int num = 5; // variable statique
return num;
}
int main() {
int& ref = getStaticRef(); // obtenir une référence à une variable statique
cout << "valeur initiale :" << ref << endl;
ref = 10; // modifier la valeur de la variable statique
cout << "valeur après modification :" << ref << endl;
cout << "valeur après avoir appelé la fonction à nouveau :" << getStaticRef() << endl;
return 0;
}
La fonction getStaticRef() renvoie une référence à la variable statique num.
Le résultat de sortie est:
初始值:5 修改后的值:10 再次调用函数后的值:10autres extensions