Stil von Variablendeklarationen
-
Mal eine Stilfrage: Wie sollte man Variablen deklarieren? Am Anfang eines Blocks wegen der Übersichtlichkeit oder mittendrin, sobald man sie braucht? Ich meine, bei Variablen in if-Blöcken ist es ja klar, daß man die nicht am Anfang der Funktion deklariert, sondern innerhalb der if-Anweisung. Aber was ist mit solchen, die auf jeden Fall gebraucht werden? Man nehme nur mal folgendes Beispiel:
void funktion () { const int C=10; int a, b; cout<<"Bitte Zahl eingeben: "; cin>>a; cout<<"Bitte weitere Zahl eingeben: "; cin>>b; if ((a+b)/C>0) cout<<"(a+b)/"<<C<<">0"; }Soll man das nun lieber so machen oder so hier:
void funktion () { cout<<"Bitte Zahl eingeben: "; int a; cin>>a; cout<<"Bitte weitere Zahl eingeben: "; int b; cin>>b; const int C=10; if ((a+b)/C>0) cout<<"(a+b)/"<<C<<">0"; }Das sieht ja, im Gegensatz zur ersten Variante, ziemlich unübersichtlich aus. Gibt es irgendwelche Vorteile, die hierfür sprechen?
-
Hi,
Übersichtlicher ist sicherlich ersteres hat aber in manchen Fällen einen (kleinen) Nachteil:Wenn du in deiner Funktion zwischendurch auf Fehler prüfst und auf Grund dessen dfie Funktion mittels return (...); verlässt wurde Variablen deklariert, die nie verwendet werden.
-
Deshalb sagte ich ja: So Sachen, wie in if-Abfragen (oder eben auch, wie Du meintest, bei einem vorzeitigen return) macht man natürlich da, wo man sie braucht, da man nicht sicher sein kann, ob die Variablen überhaupt benutzt werden. Aber klammern wir mal diese Möglichkeit komplett aus. Unter der Vorraussetzung, daß die Variablen auf jeden Fall benötigt werden, gibt es da einen wirklichen Grund, die Variable erst kurz vor ihrer ersten Benutzung zu deklarieren?
-
Effizienz möglicherweise. Warum erst einmal Default-Konstruieren und später zuweisen, wenn ich direkt in einer Zeile inialisieren kann.
-
Hallo
Ich finde es ehrlich gesagt übersichtlicher die Variablen dann zu deklarieren, wenn ich sie brauchen und nicht schon am Anfang des Blocks.
chrische
-
so lokal wie möglich.
siehe das nette beispiel auf http://volkard.de/Cpp/Tutorial/Grundlagen/Bessere_Variablennamen_und_Zwischenergebnisse/index.html und die allaussage auf http://volkard.de/Cpp/Tutorial/Grundlagen/Variablen/index.html
natürlich lese ich die variable erst an, wenn ich deren wert berechnen kann.
-
NES-Spieler schrieb:
Das sieht ja, im Gegensatz zur ersten Variante, ziemlich unübersichtlich aus.
Finde ich nicht, das ist aber sicherlich Geschmackssache. Grundsätzlich kannst du das handeln, wie es dir gefällt. In C++ wird aber empfohlen, Variablen erst dann zu definieren, wenn sie gebraucht werden. Und das aus gutem Grund
Stichwort: RAII. Das ist also auch meine Empfehlung.