Intent: Ensure a class only has one instance, and provide a global point of access to it.
Often only a single instance of a class is desirable in a program. The typical scenario is that of a manager of object of some sort (of windows, of accounts etc.)

class Singleton
{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance ()
{
if (_instance == 0)
_instance = new Singleton;
return _instance;
}