*this



  • Ist sowas ok..

    void funktion(Foo& f) { ... }
    
    funktion(*this);
    

    Oder sollte man lieber den Parameter als Zeiger übergeben, so das es so aussieht?

    void funktion(Foo* f) { ... }
    
    funktion(this);
    

    Und was ist schneller, oder ist das gleich schnell?



  • Das müsste gleich schnell sein, eine Referenz ist technisch nichts anderes als ein Zeiger.



  • also die pointer variante würde ich benutzen wenn es sinn machen könnte nur NULL zu übergeben



  • ich würde nen const-referenz übergeben, wenn *this von der funktion nicht verändert werden kann. dann sieht das so aus wie call-by-value und ich hab als aufrufer beim sichten meines codes klargestellt, daß da nix passiert.

    und kann *this geändert werden, will ichs beim aufruf durch den gefahrenoperator & kennzeichnen, der mich immer darauf hinweist, daß bei diesem aufruf *this einem (eventuell fehlerhaften) seiteneffekthieb erliegen kann.


Anmelden zum Antworten