Referenzen als Referenzen nutzen?



  • Hi
    Sollte man Referenzen auch als Referenzen nutzen, oder Referenzen auf const Referenzen beschränken und Übergabeparameter die man verändern will als Pointer deklarieren, was explizit wäre und sozusagen vorraussetzt man wüsste was man tut, wenn man es aufruft. Auf der anderen Seite ist es halt ein Pointer und somit von Natur aus schon eine Fehlerquelle.
    Was sollte man nutzen?



  • Pointer, wenn auch NULL sein kann und const, wenns const sein soll.



  • also ich find es verwirrend, wenn man Referenzen und Pointer unstrukturiert mischt. Den überblick zu verlieren ist die größte Fehlerquelle.



  • Krux schrieb:

    also ich find es verwirrend, wenn man Referenzen und Pointer unstrukturiert mischt. Den überblick zu verlieren ist die größte Fehlerquelle.

    Bei non-const-Referenzen finde ich wiederum schade, dass man bei der aufrufenden Funktion nicht sehen kann (außer durch Intellitext oder ähnliches hochmodernes Gesocks), ob ein Wert verändert wird.
    Z.B. hier:

    int a=10, b=20, c=30;
    doSomething( a, b, c );
    

    Die Signatur von doSomething könnte (a) doSomething(int,int,int) sein, aber genauso gut (b) doSomething(int,int&,int) .
    Wenn ich gegen eine Schnittstelle mit Signatur (a) programmiere, die sich plötzlich auf Signatur (b) ändert und ich das nicht merke, bin ich am Arsch. Ich hätte jedenfalls manchmal gern eine Semantik für non-const-Ref-Übergaben 🙂


Anmelden zum Antworten