C++単例Singleton
参考:
http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html
引用タイプ。マルチスレッド初期化問題を解決して、複数のnewを防ぐことができるようですが、プログラム起動と起動するので、プログラム起動が遅くなる可能性があります。
これは使う時だけnewです。
http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html
引用タイプ。マルチスレッド初期化問題を解決して、複数のnewを防ぐことができるようですが、プログラム起動と起動するので、プログラム起動が遅くなる可能性があります。
class Singleton
{
private:
static Singleton instance;
Singleton(void) { }
public:
static Singleton& GetInstance()
{
return instance;
}
};
Singleton Singleton::instance;
// static
// cpp
// .h ,
針類、受動型。これは使う時だけnewです。
class Singleton
{
private:
static Singleton *instance;
Singleton(void) { }
public:
static Singleton *GetInstance()
{
if (NULL == instance)
instance = new Singleton();
return instance;
}
void cleanup() //
{
if (NULL == instance) return;
delete instance;
instance = NULL;
}
};
Singleton *Singleton::instance = NULL;