uterschiedlicher Programmverlauf bei dateiinhalt
-
Hi,
bei Spielen sieht man oft config.txt dateien wo dann sowas drinsteht wie:
debug = trueso ne datei zu erstellen und auszulesen ist kein prob die frage ist kann man sowas "automatisieren" kann, sodass man nicht mehr sowas machen muss:
... string ueberfluessig; bool debug; ifstream config("config.txt"); config >> ueberfluessig; // Weil "debug" und "=" ueberfluessig sind config >> ueberfluessig; config >> debug; // Den Wert von debug einlesen if(debug == true) { void writeLogFile(...) { ... // Funktion zum eintragen von LogFile einträgen } } else { void writeLogFile(...) {} // Funktion macht nichts, da debug false ist } ...Mfg Yazoo
-
Ich würde es ja über Interfaces machen.
class Logger { public: virtual log(const std::string&) = 0; //... }; // andere Datei: class DebugLogger : public Logger // andare Datei: class ReleaseLogger : public LoggerUnd dann einfach ne Factory-Funktion zum erstellen:
// Header Logger* createLogger(bool debug); // Source { if (debug) return new DebugLogger; else return new ReleaseLogger; }Natürlich sollte man sich da noch ein besseres Konzept überlegen. So ein Raw-Pointer ist nicht gerade optimal. Vllt einen shared_ptr oder so.
EDIT:
Allerdings empfiehlt es sich bei Loggern, die nur im Debug-Modus aktiv sind, Makros zu benutzen, die zu nichts werden, wenn nicht debuggt wird, kostet sonst zuviel Performance.Gruß
Don06