diff options
Diffstat (limited to 'Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp')
-rw-r--r-- | Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp b/Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp new file mode 100644 index 0000000..3ea12a3 --- /dev/null +++ b/Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp @@ -0,0 +1,43 @@ +// MyClass.cpp +// +#include "stdafx.h" +#include "MyClass.h" + + +// Initialization of protected static data members: +void* MyClass::mpStaticMemory = NULL; +const double MyClass::mPI = 3.141592; +std::string MyClass::mStaticStr = "Init Value"; + + +// Invoke the StaticConstructor & StaticDestructor of the class: +// Make sure you put this AFTER the initialization of the static data members! +INVOKE_STATIC_CONSTRUCTOR(MyClass); + + +// Default Constructor: +MyClass::MyClass() +{ +// PI = 5.0; // Cannot be done, as PI is const + mStaticStr = "Modified by Default Constructor"; +} + +// Destructor: +MyClass::~MyClass() +{ + mStaticStr = "Modified by Default Destructor"; +} + +// Static Constructor: +void MyClass::StaticConstructor() +{ + mStaticStr = "Modified by Static Constructor"; + mpStaticMemory = new double[10]; +} + +// Static Destructor: +void MyClass::StaticDestructor() +{ + delete[] mpStaticMemory; +} + |