Einzelnen Beitrag anzeigen
Ungelesen 21.10.12, 17:08   #5
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Eine Referenz ist die weniger mächtige aber sicherere Form eines Pointers. In Teilbereichen kann man einen Pointer mit einer Referenz ersetzen, aber nicht immer. Im OOP könnte man das ganze als Vererbungshierarchie darstellen. Wobei ein Pointer eine Spezialisierung einer Referenz ist (also Pointer erbt von Referenz).

Um dir das als Java-Kenner etwas klarer zu machen, kannst du dir eine Referenz in C++ so vorstellen, wie eine Referenz (Variable auf ein Objekt) in Java, welche aber als final deklariert wurde (eine Referenz in C++ kann nicht mehr auf ein anderes Objekt (Datentyp) Referenziert werden; also wenn du in Java eine Variable mit final verwendest, kannst du in C++ eine Referenz verwenden (meistens)). Jedoch gib es dann noch ein paar zusätzliche unterscheide. Eine Referenz in C++ muss, zum Unterschied zu Java immer auf ein Objekt (Datentyp) referenzieren (kann also nicht null (NULL) sein).

Man sollte aus Sicherheitsgründen immer eine Referenz verwenden. Erst wenn es mit einer Referenz nicht mehr möglich ist (z.B.: dynamische Datenstrukturen, wenn man die Variable für verschiedene Objekte verwenden muss, ...), sollte man zu einem Pointer greifen. Denn immer da wo du einen Pointer verwendest, wird es "gefährlich" (also lieber 5 mal überlegen, ob es nicht doch mit einer Referenz geht; zudem solltest du dir als Ersatz für Pointer, Smartpointer ansehen).
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten