Introduction
Sometimes we have to code with 'singleton'. If you don't know what Singleton is, you can read about it in many Design Pattern books. Singleton principle is really simple.
As you know, if you use reference pointer for singleton object, then you must delete it when program terminates. But it will be good because it does 'late instance'.
I want to terminate singleton object automatically, and instance lately. So, I coded this.
Good things:
- Late instance.
- Safe terminate automatically.
- Separated code for Object and Singleton.
Here is my tiny singleton helper class - CSingletonT<>
, and I hope it helps you.
#include "SingletonT.h"
class CObj
{
protected:
CObj(){ x = 0 ; TRACE("Created CObj\r\n"); }
public:
virtual ~CObj(){ x = 0 ; TRACE("Deleted CObj\r\n");}
int x;
};
void CTestSingleTDlg::OnButton1()
{
CObj* o = CSingletonT<CObj>::GetObject();
o->x ++;
TRACE("o->x = %d\r\n",o->x);
}
If it works, then you can see output like in the sample picture:
I hope it helps you, Thanks!