Hey Beorn,
soweit ich das verstehe handelt es sich hier um eine Singleton-Klasse.
Am besten schaust du dir dazu den Wikipedia-Eintrag an:
http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster)
Ein Singleton ist im Grunde genommen eine Klasse, von der es nur ein Objekt
gibt, welches allerdings nicht direkt Instantiiert werden kann, da der Konstruktor
privat ist. Stattdessen wird eine Methode verwendet, die ungefähr so aussehen könnte:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
private:
static Singleton* instance;
...
public:
static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance
}
|
Verwendet wird das ganze folgendermaßen:
|
C-/C++-Quelltext
|
1
2
3
4
|
...
Singleton.getInstance().doSomething();
Singleton.getInstance().doSomethingElse();
...
|
|
C-/C++-Quelltext
|
1
|
#define g_pTimer CTimer::get()
|
soll es dem Programmierer erleichtern, sich die Instanz des Singletons zu holen.
Das "TIMER_HPP" wird am Anfang definiert, da es zum sogenannten Guard gehört.
Ein Guard schützt die Header-Datei davor, dass sie beim mehrfachen Einbinden immer wieder
neu "ausgeführt" (?) wird. Ansonsten würde die Klasse CTimer mehrfach angelegt - es käme
also wahrscheinlich zu einem Compiler-Fehler.