My program needs a Class. It only needs one instance so I can make all the members static (a static class). I also can make a dynamic class (not static) then create one instance and use it. I created an example program. Two classes acting exactly the same.
MyStaticClass.hIts .cppCode:class MyStaticClass { static int _i; public: static void PrintMe(); };MyDynClass.hCode:#include "MyStaticClass.h" #include <iostream> int MyStaticClass::_i = 516; void MyStaticClass::PrintMe() { std::cout << _i << std::endl; }Its .cppCode:class CMyDynClass { int _i; public: CMyDynClass(); void PrintMe() const; }; extern CMyDynClass MyDynClass;And main to test themCode:#include "MyDynClass.h" #include <iostream> CMyDynClass MyDynClass; CMyDynClass::CMyDynClass() { _i = 516; } void CMyDynClass::PrintMe() const { std::cout << _i << std::endl; }I want to know your idea about benefits and drawbacks of each method.Code:#include "MyDynClass.h" #include "MyStaticClass.h" int main() { MyStaticClass::PrintMe(); MyDynClass.PrintMe(); return 0; }
Thanks



LinkBack URL
About LinkBacks




Are you going to give up public methods too?* Otherwise sneaky types will just start replacing "myobj.value" with getters and setters.