switch mit Objekterzeugung
-
Ich habe in meiner main eine switch die mir je nach Anwendungsfall verschiedene Objekte erzeugt. Dabei ist mir nun etwas komisches aufgefallen:
int ANWENDUNGSFALL = BEISPIEL; switch(ANWENDUNGSFALL) { case BEISPIEL: { DatenModul* D = new DatenModul(3); BeispielModul1* B1 = new BeispielModul1(D, "BeispielModul1"); BeispielModul2* B2 = new BeispielModul2(D, "BeispielModul2"); } case RUNDKURS: { DatenModul* D = new DatenModul(1); } case HINDERNIS: { DatenModul* D = new DatenModul(1); } case EINPARKEN: { DatenModul* D = new DatenModul(1); } }Eigentlich sollte das DatenModul nur einmal erstellt werden. Im Konstruktor des DatenModuls wird eine Logdatei auf dem Dateisystem erstellt und geöffnet. Das für mich verwunderliche ist nun, dass immer 4 Logdateien erstellt werden! Als würden alle 4 case Fälle eintreten, aber warum?
-
du hast das
break;vergessen...bb
-
Schau noch einmal in dein Grundlagenbuch und achte auf das Wörtchen break;-)
-
Ach man! Danke :=)
-
Wenn dein
switchgrösser und unübersichtlicher wird, kann es sich lohnen, sich nach einer Alternative umzusehen. Dazu gibts im Forum hier einen Artikel, den du bei Interesse anschauen könntest: Object-Switching