const-correctness Frage



  • Hi,

    lohnt sich const-correctness auch bei globalen-Funktionen die keiner klasse zuzuordnen sind?

    z.B.

    void foo (const int& value) const
    {
         mach was mit value
    }
    

    Wäre das Sinnvoll? Wie siehts mit Templates aus?



  • *** schrieb:

    lohnt sich const-correctness auch bei globalen-Funktionen die keiner klasse zuzuordnen sind?

    Ja klar.

    void foo (const int& value) const
    {
         mach was mit value
    }
    

    Wäre das Sinnvoll?

    Nö, weil es nicht funktioniert. Auf welches Objekt soll sich denn das nachgestellte const beziehen? Dass value eine Referenz auf const ist, ist das dagegen sehr sinnvoll.



  • Das const bei value ist sinnvoll, das andere const kannst du gar nicht bei globalen Funktionen benutzen.



  • Die konstante Referenz beim Parameter ist imo nicht sinnvoll, da Typen mit builtin Charakter genauso gut by-value übergeben werden können. Bei UDTs ist das natürlich was anderes.



  • Sorry, aber sind Typen mit Builtin-Charakter die elementaren Datentypen?
    Und was bedeutet die Abkürzung UDT? (steht sie zufällig für Klassen wie String o. ä.)

    Caipi



  • Caipi schrieb:

    Sorry, aber sind Typen mit Builtin-Charakter die elementaren Datentypen?
    Und was bedeutet die Abkürzung UDT? (steht sie zufällig für Klassen wie String o. ä.)

    Caipi

    Builtin Typen sind die von dir erwähnten elementaren Datentyüpen wie cahr, int etc.

    UDT = User Defined Types (also Klassen, Strukturen etc.)

    Edit: Wird Zeit für Urlaub...



  • Caipi schrieb:

    Sorry, aber sind Typen mit Builtin-Charakter die elementaren Datentypen?

    Ua. Also sowas wie char, int, float, etc. Aber auch selbst definierte Typen gehören dazu, zB

    #ifdef HIGH_PRECISION
        typedef double my_float_type;
    #else
        typedef float my_float_type;
    #endif
    

    Caipi schrieb:

    Und was bedeutet die Abkürzung UDT?

    UDT heisst einfach "User Data Type" oder auch "User Defined Type". Diese setzen sich normalerweise in Klassen oder Strukturen aus mehreren Membern zusammen. Diese Member können wiederum selbst vom Typ her UDTs sein.



  • Danke euch beiden - wieder was gelernt.

    Caipi


Anmelden zum Antworten