Eine Referenz ist ein Alias (Pseudoname) für eine Variable und kann genauso wie diese benutzt werden. Referenzen stellen (im Gegensatz zu Zeigern) kein eigenes Objekt dar, d.h., für sie wird kein zusätzlicher Speicher angefordert.
// Reference // i, ri, *pi are different names for one variable #include <iostream.h> int main() {int i; // i int &ri = i; // declaration reference on i int *pi; pi = &i; // declaration pointer on i; i = 7; cout << i << ri << *pi; ri++; cout << i << ri << *pi; (*pi)++; cout << i << ri << *pi; }
Referenzen werden häufig zur Parameterübergabe an Funktionen benutzt. Eine weitere sinnvolle Anwendung besteht in der Referenz auf ein Feldelement, Strukturelement oder auf innere Daten einer komplizierten Datenstruktur wie nachstehend gezeigt wird.
// Reference and dynamical array of type student #include <iostream.h> int main() { struct Student {long long int matrikel; int skz; char name[30], vorname[20]; }; Student gruppe[4]; // pointer at Student // Data input; ... i = 3; { // reference on comp. of structure int &rskz = gruppe[i].skz; // reference on structure Student &rg = gruppe[i]; // reference on comp. of referenced structure long long int &rm = rg.matrikel; cout << "Student nr. " << i << " : "; cout << rg.vorname << " " << rg.name << " , "; cout << rm << " , " << rskz << endl; } }