ensure a class has only one instance and provide a global point of access
// .h file
class Singleton {
public:
static Singleton instance();
protected: limit access
Singleton();
private:
static Singleton* _instance;
};
// .c file
Singleton* Singleton::_instance = 0;
Singleton* Singleton::instance() {
if (_instance == 0)
_instance = new Singleton();
return _instance;
}