Pointer, Smart Pointer vs. Referenzen



  • Hallo,

    1. gibt es einen Grund, noch "alte" Raw Pointer zu benutzen oder sind Smart Pointer
      grundsätzlich vorzuziehen?

    2. 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;
    
    1. 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.



  • @Mond

    Hallo

    1. 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.

    2. Nein, da das legacy-projekt die raw-pointer (hoffentlich) selber löscht, wovon dein smart-pointer aber nichts mitkriegt.

    3. Die Frage Pointer vs Referenzen macht Sinn; die Frage nach Smart-Pointer vs. Referenzen verstehe ich nicht


Log in to reply