Partager via


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

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

Syntaxe

lvalue-reference-type-id:
type-specifier-seq&attribute-specifier-seqoptptr-abstract-declaratoropt

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 address-of. Lorsque l’identificateur & est précédé d’un type, tel que int ou char, l’identificateur est déclaré comme référence au type. Lorsque &l’identificateur 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;
}
Bill is 40

Voir aussi

Informations de référence
Arguments de fonction de type référence
Référence-type, fonction retourne
Références aux pointeurs