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