diff options
author | chai <chaifix@163.com> | 2021-12-13 00:07:19 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-12-13 00:07:19 +0800 |
commit | 60cbbdec07ab7a5636eac5b3c024ae44e937f4d4 (patch) | |
tree | b2c7b0a868f18159dbc43d8954e1bd7668549a88 /Client/ThirdParty/StaticConstructor/StaticConstructorSample/MyClass.cpp |
+init
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; +} + |