'&' vor Parameter

Hi,

ich habe fremden (VC6-)Code bekommen und wundere mich nun, was das hier für eine Parameterübergabe sein soll (bin nich so der C-Freak).

void xyz(long &milli)
{
...
}

weiter unten im Code kommt sogar irgendwann

try
{
...
}
catch(CMilliException &exc)
{
...
}

Allerdings kann ich diese Exception nicht mir exc.Delete() löschen (Zugriffsverletzung).

Wer kann mir mal erklären, was das ‚&‘ dort soll und was mit diesen Parametern beim Methodenaustritt passiert ?

Vielen Dank
Lars

C++ - Code
Du hast es an dieser Stelle mit C++ Referenzen zu tun. Eine Referenz ist so etwas wie ein Pointer, beim Zugriff musst du im unterschied zum Pointer aber nicht mehr de-referenzieren. Per Definition muss eine Referenz immer auf ein gültiges Objekt zeigen (eine Prüfung auf 0 ist nicht notwendig).
Eine Referenz kann ich nachhinein nicht geändert werden, d.h. bereits beim Anlegen einer Referenz wird diese mit dem Zielobjekt verbunden und kann danach nicht mehr geändert werden. Du arbeitest mit der Referenz auf dem echten Object.

Aus C-Sicht ist eine Referenz ähnlich zu Pointern.

Gruß Markus

einfacher beispielcode zum besseren verstehen:
http://volkard.de/vcppkold/call_by_reference.html