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