Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Also ich persönlich (!) finde "m_" usw. allein schon praktisch, weil dann lokale Variablen in bestimmten Fällen schonmal den selben Namen haben können (vorallem bei Parametern im Konstruktor immer sehr anschaulich dann).
So oder so lassen sich aus der Diskussion doch 2 Dinge über ungarische Notation feststellen:
- Sie ist vollkommen geschmacksabhängig und der Einsatz pure Gewohnheit: Manche lieben es, einige hassen es, wieder andere mögens nich können aber darüber hinweg sehen
- Ungarische Notation muss (wenn sie den schon da ist) konsequent und logisch sein
Ansonsten gilt das was "Helmut" doch immer in seiner Signatur hatte (hat?): „Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung.“
Wer widerspricht mir?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »xardias« (04.09.2010, 21:37)
Aber mal angenommen die Klasse von dot hat noch 3 weitere solcher Methoden. Gerade bei einer solchen Klasse wie "AnimatedModel" kommt sehr schnell sehr viel Code zusammen, ich sehe nicht, wie man den sinnvoll umgehen könnte. Aber mal zurück... angenommen er hat noch 3 weitere solch großer Methoden und fängt nun an diese sinnvoller aufzusplitten, dann hat er aus 4 Spaghetti-Methoden 16 Methoden gemacht, die alle gut lesbar und kurz sind. Aber was hilft ihm das, denn nun hat 12 Overhead-Methoden, die eigentlich keinen echten Klassen-Zweck erfüllen, sondern nur irgendwelchen privaten Code ausführen? Ist das nicht künstliches Aufblähen der Klasse? Wie verhindert ihr denn sowas, das ist mir irgendwie unklar.
Mir persönlich läufts auch eiskalt über den Rücken, wenn ich Code wie bei MasterK vor Augen habe.
Aber wie gesagt, ich sehe nicht ein wieso "m_p" oder "m_s" oder "_s"(wobei _s ja fast auch unnötig ist und imho auch weggelassen werden kann) oder sonstwas schlecht sein sollte.
Also sorry, ich kann die Argumentation gegen "teilweise Ungarische Notation" nicht verstehen, erstrecht nicht den Vorwurf, es breche die Objektorientierung.
Es "bricht" nicht die OOP, aber ungarische notation reicht nicht, um in OOP sinnvoll angewendet zu werden.
"oh, also bei dem pointer, da pack ich nen 'p_' dran, bei dem smartpointer aber nicht. Und bei array, da pack ich nen 'a_' ran, beim vector aber nicht". Womit der code wieder unleserlich und inkonsequent wird.
Deine Argumentation ist sehr unlogisch: Ein p (nicht "p_"!) vor einem Pointer bringt viel, z.B. wenn du diesen Fall hast, du hast eine Klasse Model, die eine Variable vom Typ Texture (kein Zeiger) beinhaltet, es gibt eine Funktion SetTexture(), die einen Pointer auf eine Texture erwartet und den Wert des Pointers der Membervariable zuweist. Mit p hast du gleich 2 Vorteile:
1. Der Textur-Parameter der Funktion kann gleich heißen (also pTexture und die Membervariable m_Texture)
2. Jemand, der die Klassendefinition nicht kennt weißt der Membervariable nicht die Adresse des Zeigers oder so zu, sondern weiß durch die Präfixe, dass es sich bei dem Parameter um einen Zeiger handelt.
Außerdem, wie sind deine Vektoren definiert? Ein Array ist bei mir etwas, wie int aiValues[100] und ein Vector eine Struktur, die 3 Variablen (x, y und z) enthält.
Ach du meinst den STL-Container vector, ich dachte einen 3D-Vector?
aber a, p, r, m_ und g_ finde ich wichtig.
Was für einen grund hätte ich, den in zusammenhang mit nem array zu bringen?
Mastermind
unregistriert
Werbeanzeige