Vor-/Nachteile von Pointern/Referenzen



  • Hallo, lese zur Zeit den C++ Primer auf englisch. Jetzt ist da eine Frage: Was sind Vor- bzw. Nachteile von Pointern/Referenzen und wann würdest du was von den zweien benutzen.
    Diese Frage bezieht sich auf Funktionen un deren Aufruf. Also Vorteile der zwei gegenüber das Kopieren eines Objektes ist mir klar, jedoch nicht der Unterschied zwischen den zweien bzw Vor-/Nachteile. Könntet ihr mir auf die Sprünge helfen??

    -GhostfaceChilla-



  • Im großen und ganzen gibt es hier nur einen Unterschied:

    Zeiger können 0 sein, Referenzen nicht.
    Sprich: wenn der Parameter immer gültig sein muss, dann sind Referenzen besser - wenn er auch ungültig sein kann, sind Zeiger besser.

    Ein andererseher selten vorkommendes Argument ist, dass man bei Zeigern schneller sieht dass der Parameter in der Funktion geändert wird.

    zB

    toLowerCase(str);
    //vs
    toLowerCase(&str);
    


  • Man versucht, keine beschreibaren Parameter zu übergeben. Nur da gäbe es Probleme der fraglichen Frage. Schon ok, daß einem dabei immer ein wenig unwohl wird. Normalerwesie versucht man es so hinzufummeln, daß das Rechenergebnis per return zurückgegeben wird, deshalb können die Parameter const werden. Und const-Parameter würde ich immer per Referenz übergeben, außer manchmal selten, wenn es nicht anders geht, nämlich wenn ein Scherzkeks mir einen Zeiger gab, der nullptr (oder NULL oder 0) sein kann und ich ihn weiterreichen mag.



  • Ah ok alles klar danke 😉
    Hatte schon gedacht da steckt mehr dshinter aber wenns so ist, dann ist das ja auch kein Problem dieses Kpaitel, vielen dank 🙂

    -GhostfaceChilla-


Log in to reply