Odwołanie lValue; niewłaściwy deklarator: &
Przechowuje adres obiektu, ale zachowuje się syntaktycznie jak obiekt.
type-id & cast-expression
Uwagi
Odwołanie lvalue można traktować jako inną nazwę dla obiektu.Deklaracja odniesienia lvalue składa się z opcjonalna lista Specyfikatory następuje odwołanie; niewłaściwy deklarator.Odwołanie musi zostać zainicjowany i nie mogą być zmieniane.
Dowolny obiekt, którego adres można konwertować na typ danego wskaźnika można skonwertować także typ odwołania podobnego.Na przykład dowolny obiekt, którego adres można przekonwertować typu char * również mogą być konwertowane na wpisz char &.
Nie należy mylić deklaracji odniesienia z użyciem adres z operatora.Gdy & identyfikatora poprzedzona jest typu, takie jak int lub char, identyfikator jest zadeklarowana jako odwołanie do typu.Gdy & identyfikatora nie jest poprzedzony przez określony typ użycia jest adres z operatora.
Przykład
W poniższym przykładzie zademonstrowano; niewłaściwy deklarator odniesienia oświadczając, Person obiekt i odwołanie do tego obiektu.Ponieważ rFriend jest to odwołanie do myFriend, aktualizowanie zmiennej albo zmiany samego obiektu.
// 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;
}