Comprendre les références en C++ : Concepts clés et différences avec les pointeurs
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, soit le nom de la variable, soit 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 références et pointeurs sont :
Vous ne pouvez pas avoir de références NULL. Vous devez toujours pouvoir supposer qu'une référence est connectée à un morceau de stockage légitime.
Une fois qu'une référence est initialisée vers un objet, elle ne peut pas être changé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 seconde étiquette attachée à cet emplacement mémoire. Par conséquent, vous pouvez accéder au contenu de la variable soit par le nom de variable original, soit par 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 référence. Ainsi, lisez la première déclaration comme « r est une référence d'entier initialisée à i » et la seconde comme « s est une référence de double initialisée à d ». L'exemple suivant utilise des références sur int et double :
#include <iostream>
using namespace std;
int main() {
// déclarer des variables simples
int i;
double d;
// déclarer des variables de référence
int& r = i;
double& s = d;
i = 5;
cout << "Valeur de i : " << i << endl;
cout << "Valeur de la référence de i : " << r << endl;
d = 11.7;
cout << "Valeur de d : " << d << endl;
cout << "Valeur de la référence de d : " << s << endl;
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
Valeur de i : 5 Valeur de la référence de i : 5 Valeur de d : 11.7 Valeur de la référence de d : 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++ :
| N° | Concept et description |
|---|---|
| 1 | Références comme paramètres C++ prend en charge le passage de références comme paramètres de fonction plus sûrement que les paramètres. |
| 2 | Référence comme valeur de retour Vous pouvez retourner une référence depuis une fonction C++ comme tout autre type de données. |
Langue C
- Comprendre les types de données C++ : Fondamentaux, modificateurs et bonnes pratiques
- Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
- Commentaires C++ : Bonnes pratiques pour un code lisible et maintenable
- Comprendre les constructeurs C++ : Par défaut, paramétrés et de copie expliqués
- Maîtriser les templates de classe en C++ : Guide pratique
- Langage C++ : Vue d'ensemble et caractéristiques clés
- Constantes et littéraux en C++ : Types, syntaxe et bonnes pratiques
- Guide complet des opérateurs C++ : Types, utilisation et bonnes pratiques
- Maîtriser les types numériques en C++ : Guide pratique