A singleton pattern typically applies to only one object in the entire application. For example, the application class, the game scene class, the tool class and so on.
Implementation method:
Header file Singleton.h:
#ifndef _singleton_h_
#define _singleton_h_
Class csingleton{
Public
For external invocation, this method gets the instance
Static csingleton* getinstance ();
Private
Csingleton ();
Csingleton (const csingleton&);
csingleton& operator= (const csingleton&);
static csingleton* instance;
}
#endif
Implementing File Singleton.cpp
#include "Singleton.h"
constructor function
Csingleton::csingleton () {}
Null copy function to prevent copying
Csingleton::csingleton (const csingleton&) {}
overloading = function to prevent copying
csingleton::csingleton& operate= (const csingleton&) {}
csingleton* csingleton::getinstance () {
if (instance==null)//double judgment, avoid high concurrency, produce multiple instances (this method will add a little overhead)
{
Lock ();
if (instance==null) instance=new Csingleton ();
Unlock ();
}
return instance;
}
"Design mode" single-instance mode C + + implementation