007
27.03.2006, 12:07 Uhr
RHBaum
|
Zitat: |
Star Wars fängt gerade an, trotz kurz auf die Schnelle:
|
Ok, dafuer laesst man schon mal paar kleinigkeiten durchgehen ^^ Aber nu iss Starwars vorbei ^^
Zitat: |
static CTimer * globalTimer = 0;
|
Globale variablen sind poese !!! An der stelle aber quasi Unumgaenglich. Nur besser (sauberer) Kapseln wuerd ich sie ...
Zitat: |
Übrigens: Wäre IncrementSpeedCounter static würde es auch so gehen.
|
Genau das sollt das Ziel sein, weil methoden nun mal sauberer sind wie lose rumfliegende globale funktionen und variablen ... naja mindestens nen Namespace solltens sie spendiert bekommen !
C++: |
class Counter { public: static inline void Increment(){++t;} static CTimer getCounter() const {return t;} // damit man auch zugriff hat ohne das private verletzen zu muessen ... private: static CTimer t; // in irgend einer cpp datei sollte die natuerlich mal definiert/initialisiert werden, sonst gehts nich };
|
// Wenn deine Klasse bekannt ist, kannst sie dann einfach nutzen ...
C++: |
int main() { install_int_ex(&Counter::Increment,/* was man noch braucht */); }
|
Find ich sauberer, da nun variable und funktion durch die klassenzugehoerigkeit an nen kontext aber an keine Instanz gebunden sind. Rein Technisch fuern compiler isses das selbe wie das was unser star wars freund es schon vorgeschlagen hat ...
<huestel> Fehler iss natuerlich versteckt drin, damit mans nich ohne nachdenken uebernhemen kann ! ^^
Ciao ... Dieser Post wurde am 27.03.2006 um 12:15 Uhr von RHBaum editiert. |