Pointer, Smart Pointer vs. Referenzen
-
Hallo,
-
gibt es einen Grund, noch "alte" Raw Pointer zu benutzen oder sind Smart Pointer
grundsätzlich vorzuziehen? -
Ergibt es evtl. Sinn, in neuen Teilen von Legacy Projecten den Raw Pointer zu einem Smart Pointer zu casten?
Geht etwas folgendes?
shared_ptr<class> new_ptr = raw_ptr; shared_ptr<double> new_ptr2 = raw_pt2r;
- Benötigt man überhaupt Smartpointer oder kann man auch alles mit Referenzen
abdecken?
Mir fallen nur zwei Hindernisse ein:
- Parameterübergabe kann man nicht mehr auf eine andere Zielvariable überschreiben.
- Initialisierung erforderlich
Danke für die Hilfe.
-
-
Hallo
-
smart pointer werden verwendet, wenn man Objekte "besitzt". D.h. du hast grössten teils nur raw-pointer bei Funktionen etc., sonst unique_ptr was der Standard bei besitzten Objekten sein sollte (i.d.R. besitzt nur ein Objekt ein anderes Objekt), und den Rest shared_ptr.
-
Nein, da das legacy-projekt die raw-pointer (hoffentlich) selber löscht, wovon dein smart-pointer aber nichts mitkriegt.
-
Die Frage Pointer vs Referenzen macht Sinn; die Frage nach Smart-Pointer vs. Referenzen verstehe ich nicht
-