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.h
Code:
class MyStaticClass
{
static int _i;
public:
static void PrintMe();
};
Its .cpp
Code:
#include "MyStaticClass.h"
#include <iostream>
int MyStaticClass::_i = 516;
void MyStaticClass::PrintMe()
{
std::cout << _i << std::endl;
}
MyDynClass.h
Code:
class CMyDynClass
{
int _i;
public:
CMyDynClass();
void PrintMe() const;
};
extern CMyDynClass MyDynClass;
Its .cpp
Code:
#include "MyDynClass.h"
#include <iostream>
CMyDynClass MyDynClass;
CMyDynClass::CMyDynClass()
{
_i = 516;
}
void CMyDynClass::PrintMe() const
{
std::cout << _i << std::endl;
}
And main to test them
Code:
#include "MyDynClass.h"
#include "MyStaticClass.h"
int main()
{
MyStaticClass::PrintMe();
MyDynClass.PrintMe();
return 0;
}
I want to know your idea about benefits and drawbacks of each method.
Thanks