Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ME5 gibt beim Kompilieren einen Fehler aus, der meiner Meinung nach ungerechtfertigt ist.
Ich möchte, dass die vordefinierte Aufzählung der Form ENUM_XXX tatsächlich mit 1 nummeriert wird, während sie derzeit standardmäßig mit 0 nummeriert ist. Die Frage bezieht sich nicht auf die Änderung der Standardwerte, sondern auf das Ersetzen von
sollte es sein
Die Argumentation lautet wie folgt - ein Beispiel:
Wenn ich den Wert request.type irgendwo im Code analysiere und er gleich 0 ist, kann ich nicht verstehen, ob er nicht initialisiert wurde oder initialisiert wurde.
request.type = ORDER_TYPE_BUY;
Dies ist bei den meisten vordefinierten Enums der Form ENUM_ XXX äquivalent zu RadioButton der Fall und erfordert einen unverhältnismäßig hohen Aufwand, um die aktuelle Situation korrekt zu behandeln
Was hindert Sie daran, einen neutralen Bezeichner als erstes Mitglied einer vordefinierten Aufzählung zu schreiben? Zum Beispiel:
Sowohl die "Nummerierung von Null" bleibt erhalten, als auch nicht initialisierte Variablen können einfach ausgewertet werden.
Was hindert Sie daran, einen neutralen Bezeichner als erstes Mitglied einer vordefinierten Aufzählung zu schreiben? Zum Beispiel:
Und wenn Sie an die anderen denken, die bereits den ursprünglichen Satz von Enums verwenden? Ganz zu schweigen von den verblüfften Blicken des gesamten Serverkomplexes.
Im Allgemeinen ist die Frage nicht richtig gestellt. Der Entwickler sollte nicht faul sein und den Rest der Welt zwingen, sich an ihn anzupassen, indem er eben diese Welt selbst zerstört.
Nun, denken wir noch einmal "über die anderen" nach. Wozu dienen benannte Konstantenbezeichner? - Richtig, um diese Identifikatoren zu verwenden. Außerdem müssen Sie für die Verwendung dieser Bezeichner nicht unbedingt wissen, welche spezifischen Werte den Aufzählungsmitgliedern zugeordnet sind. Oder gehen Sie davon aus, dass kompetente Programmierer Bezeichner verwenden, anstatt die Standardwerte von Enum-Mitgliedern herauszufinden, und dann Prüfungen auf der Grundlage dieser Standardwerte durchführen?
D.h., es ist nicht schwer, den Vorschlag selbst umzusetzen, oder?
Der Verfasser dieses Threads hatte nicht die Absicht, durch seine Faulheit die Welt anderer Menschen zu zerstören. Er hat lediglich einen konkreten Verbesserungsvorschlag gemacht. Und erklärt, dass sich der Nullwert als überlastet erweist.
Ich möchte zumindest eine Klasse als Geltungsbereich für enum-benannte Elemente einführen,
Begründung für Klassen: Sie müssen sich einen eindeutigen Namen ausdenken, der unerwartet mit Bibliotheksnamen (auch von Dritten) und/oder vordefinierten Namen in Konflikt geraten kann. Außerdem können Sie ähnliche Namen von SL-, TP-, PRICE- usw. Enum-Elementen in mehreren Klassen gleichzeitig verwenden, ohne Konflikte befürchten zu müssen.
Begründung für die Funktionen: nicht kritisch, aber gleichzeitig
Wir möchten einen Geltungsbereich für enum-benannte Elemente einführen
Grundprinzip für Klassen: Sie müssen sich einen eindeutigen Namen ausdenken, der unerwartet mit einer Bibliothek und/oder einem vordefinierten Namen in Konflikt geraten kann. Außerdem könnten Sie ähnliche Namen für SL-, TP-, PRICE- usw. Enum-Elemente in mehreren Klassen gleichzeitig verwenden, ohne Konflikte befürchten zu müssen.
Begründung für die Funktionen: nicht kritisch, aber gleichzeitig
Aber wie sieht es in C++ aus?
Das ist, wo die Beine kommen aus - ein Paradox, aber erst jetzt (wenn es Einschränkungen), begann ich zu verstehen, warum alles dort getan wurde :)
Natürlich könnte man darauf verzichten - einen eindeutigen Namen für alle Klassen zu schreiben, aber für große Programme und besonders für Bibliotheken, die für den allgemeinen Gebrauch bestimmt sind - ist keine Option
Versuchen Sie dies (für "Initialisierung"):
WRONG_VALUE.
Eine Konstante kann implizit in einen beliebigen Aufzählungstyp umgewandelt werden.
-1