Partager via


Déclarateur de référence Lvalue : &

Contient l'adresse d'un objet mais se comporte syntaxiquement comme un objet.

type-id & cast-expression

Notes

Vous pouvez considérer une référence lvalue comme un autre nom d'un objet. Une déclaration de référence lvalue se compose d'une liste facultative de spécificateurs suivie d'un déclarateur de référence. Une référence doit être initialisée et ne peut pas être modifiée.

Tout objet dont l'adresse peut être convertie en un type pointeur donné peut également être converti en type référence similaire. Par exemple, tout objet dont l'adresse peut être convertie en type char * peut également être converti en type char &.

Ne confondez pas les déclarations de référence avec l'utilisation de l'opérateur-d'adresse. Lorsque & identifier est précédé d'un type, tel que int ou char, identifier est déclaré comme une référence au type. Lorsque & identifier n'est pas précédé d'un type, l'utilisation est celle de l'opérateur d'adresse.

Exemple

L'exemple suivant illustre le déclarateur de référence en déclarant un objet Person et une référence à cet objet. rFriend étant une référence à myFriend, la mise à jour de l'une ou l'autre variable modifie le même objet.

// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;

struct Person
{
    char* Name;
    short Age;
};

int main()
{
   // Declare a Person object.
   Person myFriend;

   // Declare a reference to the Person object.
   Person& rFriend = myFriend;

   // Set the fields of the Person object.
   // Updating either variable changes the same object.
   myFriend.Name = "Bill";
   rFriend.Age = 40;

   // Print the fields of the Person object to the console.
   cout << rFriend.Name << " is " << myFriend.Age << endl;
}
  

Voir aussi

Référence

Références (C++)

Arguments de fonction de type référence

Retours de fonction de type référence

Références aux pointeurs