Eine Sache, die oft in Code-Reviews auftaucht, an denen ich teilnehme, ist, dass "magische Zahlen" inline Code als schlecht bezeichnen.Vermeidung nicht symbolischer Konstanten in Qt
Die Präferenz ist, dass ein Symbol irgendwo zugewiesen wird.
Jetzt, was ich im Moment arbeite, ist in der QT SDK. Der Klassenmember QButtonGroup.checkedId()
gibt -1
als magische Zahl zurück, um anzuzeigen, dass in der ausgewählten Gruppe keine Optionsfelder vorhanden sind.
Und wenn ich schreibe etwas wie
if (buttongroup->checkedId() == -1)
{
//yadda yadda
}
es in dem Code-Review wird kommen.
Während sicherlich kann ich ein const static int
Symbol definieren, mir zu geben, dass -1
hatte ich viel lieber etwas in dem Qt
Namespace verwenden, wenn es eine entsprechende Konstante definiert hat.
Gibt es ein solches Symbol bereits definiert ??
Ich weiß nicht, ob es hilft, aber normalerweise verwende ich "<0" statt "== -1". AFAIK, im Vergleich zu 0 ist schneller. – Apin
Imo, 'enum {INVALID_ID = -1}' ist besser als 'const static int' Lösung. Hat aber denselben Nachteil: Sie müssen die Datei mit der Definition versehen, wo immer Sie sie verwenden. Vergleichen mit Null ist auch eine gute Option. –
Welche Richtlinie hat Ihr Unternehmen/Ihre Organisation für den Umgang mit magischen Zahlen, die von externen Bibliotheken stammen? Beachten Sie, dass viele Klassen in Qt -1 verwenden, um "undefined", "error" usw. zu bezeichnen, also ist QButtonGroup nicht die einzige. – JKSH