Referenzen

Einführung

In den letzten Kapiteln haben Sie die Basisdatentypen und Variablenoperationen kennengelernt. In dieser Lektion werden Sie mit den sogenannten Referenzen bekannt gemacht. Wenn Sie den Nutzen von Referenzen in dieser Lektion noch nicht nachvollziehen können, ist das nicht weiter tragisch, da sie erst im Kapitel Funktionen an Bedeutung gewinnen.

Variablen, welche als Referenzen deklariert werden, sind praktisch einfach nur andere Bezeichner für den gleichen Speicher. Von jedem Datentyp lässt sich ein entsprechender Referenzdatentyp ableiten. Sie müssen bei der Deklaration gleich mit einer existierenden Variable initialisiert werden. Diese Verweise lassen sich innerhalb des Programms nicht mehr ändern.

Deklaration

Die Deklaration sieht im allgemeinen so aus:

<Datentyp> <Variable> = <Wert>;
<Datentyp>& <Referenz> = <Variable>;

oder

<Datentyp> <Variable> = <Wert>;
<Datentyp> &<Referenz> = <Variable>;

Anwendung

Überprüft man schließlich anschließend den Wert der Referenz, stellt man fest, dass es sich um den gleichen wie der der Variablen handelt. Ändert man nun den Wert der Variablen so ändert sich auch der Wert der Referenz. Ändert man den Wert der Referenz, so ändert sich der Wert der Variablen. Das liegt ganz einfach daran, dass es sich bei einer Referenz um einen Verweis auf eine Variable handelt.

Ich versuche dies am folgenden Quellcode deutlich zu machen:

void main()		//1
{			//2
  int i = 2;		//3
  int& ri = i;		//4: wird zugewiesen ri hat wie i jetzt den Wert 2
  ri = 5;		//5: ri und i haben jetzt den Wert 5
  i = 4;		//6: i und ri haben jetzt den Wert 4
}			//7

Als Übung, auch in Einbezug der letzten Lektionen, würde ich ihnen empfehlen die Aussagen in den Kommentaren per Ausgabe mit 'bool' zu überprüfen. 

Sollten Sie sich fragen, was denn der Doppelslash zu bedeuten hat; es leitet  lediglich einen Zeilenkommentar ein. Im Visual Studio wird ein Kommentar standardmäßig grün markiert. Kommnentare werden bei der Interpretation des Quelltextes nicht beachtet. Sie bieten dem Betrachter jedoch eine gewisse Übersicht. Man kann z.B. Gedankengänge oder Vorgänge im Programm dokumentieren. Ein Kommentar mit einem Doppelslash eingeleitet, endet am Zeilenende. Benötigen Sie einen mehrzeiligen Kommentar leiten Sie ihn mit '/*' ein und terminieren Sie ihn mit '*/':

/*	Dies
	ist
	ein
	mehrzeiliger
	Kommentar	*/

const-Referenzen

Wird eine Referenz mit dem Schlüsselwert 'const' angegeben, dann gilt dieser Verweis als konstant, d.h. obwohl es sich um ein Alias der Variablen handelt auf die die Referenz verweist, ist es einer konstanten Referenz nicht möglich den Wert der Variablen zu ändern:

int i = 3;
const int& refi = i;
//refi = 0;		//C2166: L-Wert gibt ein konstantes Objekt an

Für die nächsten Lektionen

Sie sollten nun in etwa wissen was eine Referenz (ein Variablenverweis) ist. Wie bereits erwähnt wird dies erst bei Methoden interessant. Dazu komme ich jedoch erst später. Anzumerken ist noch, dass sich Referenzen in punkto Operationen genauso verhalten, wie andere Variablen.

Zurück Nach oben Weiter