Freigeben über


Verweise (C++)

Verweise können mit der folgenden Syntax deklariert werden:

[storage-class-specifiers] [cv-qualifiers] type-specifiers 
[ms-modifier] declarator [= expression];

Jeder gültige Deklarator, der einen Verweis angibt, kann verwendet werden. Sofern der Verweis kein Verweis auf den Funktions- oder Arraytyp ist, gilt die folgende vereinfachte Syntax:

[storage-class-specifiers] [cv-qualifiers] type-specifiers & 
[cv-qualifiers] identifier [= expression];

Verweise werden unter Verwendung dieser Reihenfolge deklariert:

1. Die Deklarationsspezifizierer:

  • Ein optionaler Speicherklassenbezeichner.

  • Optionale const- und/oder volatile-Qualifizierer

  • Der Typspezifizierer: der Name eines Typs

  • 2. Der Deklarator:

  • Ein optionaler Microsoft-spezifischer Modifizierer. Weitere Informationen finden Sie unter Microsoft-spezifische Modifizierer.

  • Der Operator &.

  • Optionale const- und/oder volatile-Qualifizierer

  • Der Bezeichner.

3. Ein optionaler Initialisierer.

Die komplexeren Deklaratorformen für Zeiger auf Arrays und Funktionen gelten auch für Verweise auf Arrays und Funktionen. Weitere Informationen finden Sie unter Zeiger und Deklaratoren.

Mehrere Deklaratoren und Initialisierer erscheinen möglicherweise in einer durch Trennzeichen getrennten Liste, die einem einzelnen Deklarationsspezifizierer folgt. Beispiel:

int &i; 
int &i, &j; 

Verweise, Zeiger und Objekte können zusammen deklariert werden:

int &ref, *ptr, k; 

Ein Verweis enthält die Adresse eines Objekts, verhält sich aber syntaktisch wie ein Objekt.

Beachten Sie im folgenden Programm, dass der Name des Objekts Today und der Verweis auf das Objekt TodayRef in Programmen identisch verwendet werden kann:

Beispiel

// references.cpp
#include <stdio.h>
struct S {
   short i;
};

int main() {
   S  s;   // Declare the object.
   S& SRef = s;   // Declare the reference.
   s.i = 3;

   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);

   SRef.i = 4;
   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);
}
  

Kommentar

Themen in diesem Abschnitt:

Siehe auch

Referenz

Initialisieren von Verweisen