Références C ++

Une variable de référence est un alias, c'est-à-dire un autre nom pour une variable déjà existante. Une fois qu'une référence est initialisée avec une variable, le nom de la variable ou le nom de la référence peut être utilisé pour faire référence à la variable.

Références vs pointeurs

Les références sont souvent confondues avec les pointeurs, mais trois différences majeures entre les références et les pointeurs sont:

  • Vous ne pouvez pas avoir de références NULL. Vous devez toujours être en mesure de supposer qu'une référence est liée à un élément de stockage légitime.

  • Une fois qu'une référence est initialisée à un objet, elle ne peut pas être modifiée pour faire référence à un autre objet. Les pointeurs peuvent être pointés vers un autre objet à tout moment.

  • Une référence doit être initialisée lors de sa création. Les pointeurs peuvent être initialisés à tout moment.

Création de références en C ++

Considérez un nom de variable comme une étiquette attachée à l'emplacement de la variable en mémoire. Vous pouvez alors considérer une référence comme une deuxième étiquette attachée à cet emplacement mémoire. Par conséquent, vous pouvez accéder au contenu de la variable via le nom de la variable d'origine ou la référence. Par exemple, supposons que nous ayons l'exemple suivant -

int i = 17;

Nous pouvons déclarer des variables de référence pour i comme suit.

int& r = i;

Lisez le & dans ces déclarations comme reference. Ainsi, lisez la première déclaration comme "r est une référence entière initialisée à i" et lisez la deuxième déclaration comme "s est une double référence initialisée à d.". L'exemple suivant utilise des références sur int et double -

#include <iostream>
 
using namespace std;
 
int main () {
   // declare simple variables
   int    i;
   double d;
 
   // declare reference variables
   int&    r = i;
   double& s = d;
   
   i = 5;
   cout << "Value of i : " << i << endl;
   cout << "Value of i reference : " << r  << endl;
 
   d = 11.7;
   cout << "Value of d : " << d << endl;
   cout << "Value of d reference : " << s  << endl;
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7

Les références sont généralement utilisées pour les listes d'arguments de fonction et les valeurs de retour de fonction. Voici donc deux sujets importants liés aux références C ++ qui devraient être clairs pour un programmeur C ++ -

Sr.Non Concept et description
1 Références en tant que paramètres

C ++ prend en charge le passage de références en tant que paramètre de fonction de manière plus sûre que les paramètres.

2 Référence comme valeur de retour

Vous pouvez renvoyer une référence à partir d'une fonction C ++ comme tout autre type de données.