_t und m_ und so...



  • thordk schrieb:

    die ungarische notation wurde von einem microsoft mitarbeitet erfunden 😉

    Das stimmt, aber Charles Simonyi hat Jahre zuvor (beovr er zu Microsoft ging) die Ungarische Notation entwickelt.

    Aber ich sag ja: Nieder mit diesem Müll, hat in C++ nichts zu suchen!



  • loks schrieb:

    Hinzu kommt das im alten C alle Variablen immer am Anfang des Blocks definiert werden mußten.

    und ich hatte es mittlerweile FAST vergessen... du böser mensch!



  • thordk schrieb:

    loks schrieb:

    Hinzu kommt das im alten C alle Variablen immer am Anfang des Blocks definiert werden mußten.

    und ich hatte es mittlerweile FAST vergessen... du böser mensch!

    Das empfand ich aber als schlimmer:

    int test_funktion (parameter1, parameter2)
    int parameter1,
    int parameter2
    {
        int result;
    
        result = parameter1 + parameter2;
    
        return (result);
    }
    


  • Das ist dann gar nicht mehr so weit von Assembler entfernt 😉



  • Ungarische Notation kann man in C++ zu nichts gebrauchen, also finger weg. Ist wie sprintf in C++.



  • Artchi schrieb:

    Soweit ich weiß, wurde die ungarische Notation von einem ungarischen MS-Mitarbeiter eingeführt, weil er damals kein englisch konnte und so die Kollegen ihn "verstehen" konnten.

    Geiles Gerücht. 🙂

    Mal ein bissl Klarheit. Die ungarische Notation wurde für das Microsoft-Office-Projekt eingeführt, zumindest ist das Joel Spolskys Theorie und er als Insider hat da sicher etwas Ahnung. Ich empfehle seinen Artikel. Gerade denen, die so vehement gegen UN wettern. Ich bin zwar nach wie vor ein Feind der UN in Sprachen, deren Semantik eine strikte Typentrennung zulassen. Trotzdem sind einige Notationen durchaus sinnvoll (man schaue sich z.B. mal den Gebrauch von '_t' in Bibliotheken wie Boost::Spirit an; ohne solch eine Notation wär's da echt chaotisch). Genrell ist mein Gedanke dazu: UN ist -- für Typenkennzeichnungen -- in einer streng typisierten Sprache absolut sinnlos. Sie *ist* aber sinnvoll, um andere semantische Kennzeichnungen vorzunehmen, die nicht durch den Compiler überprüft werden. Allerdings sind das fast immer temporäre Lösungen. Die Beispiele in Joels Artikel finde ich da nicht sehr gut. Hier gäbe es bessere Lösungen.

    Na ja, hier der Artikel: http://www.joelonsoftware.com/articles/Wrong.html



  • Nachtrag:

    Das Präfix 'm_' (oder eine andere beliebige Notation) ist wirklich ein sinnvoller Einsatz der Ungarischen Notation. Hier wird nämlich eine Semantik deutlich gemacht, die sonst verloren ginge. In VB könnte man hier zwar auch getrost 'Me.' nehmen aber 'this->' unter C++ finde ich vergleichsweise zu klobig (außerdem bedeutet 'Me.' bzw. 'this->' nicht immer dasselbe wie 'm_').



  • Mestro schrieb:

    Ungarische Notation ... Ist wie sprintf in C++.

    schreib' doch **std::**sprintf. vielleicht findest du das besser 😃



  • loks schrieb:

    Wobei... Ich hab schon damals diese Notation für viel zu umständlich empfunden... Weil eine Änderung des Typs immer eine Umbenennen der Variablen nach sich gezogen hätte... Dummfug halt.

    Wo du schon von modernen IDEs sprichst: Rechtsklick -> Refactor -> Rename 😃



  • naja ist ab un zu schon vorteilhaft...



  • Fu UN!


Anmelden zum Antworten