// Reference
// i, ri, *pi are different names for one variable
#include <iostream.h>
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, siehe § 7.2.
Eine weitere sinnvolle Anwendung besteht in der Referenz auf ein
Feldelement, Strukturelement oder auf innere Daten einer
komplizierten Datenstruktur wie nachstehend, vom Beispiel auf
Seite
abgeleitet, gezeigt wird.
// Reference and dynamical array of type student
#include <iostream.h>
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;
}
}
|