マルチスレッド対応Singletonパターンを使うといいでしょう。
#pragma once
#include
class Singleton
{
private:
static Singleton* m_pSingleton;
static boost::mutex m_Mutex;
protected:
/**
@brief コンストラクタ
*/
Singleton(){};
/**
@brief デストラクタ
*/
~Singleton(){};
/**
@brief 代入演算子オーバーロード
*/
Singleton &operator=(const Singleton&);
public:
/**
@brief シングルトンアクセス関数
*/
static Singleton& get()
{
if( !m_pSingleton){
boost::mutex::scoped_lock Lock(m_Mutex);
if( !m_pSingleton){
m_pSingleton = new Singleton;
}
}
return *m_pSingleton;
}
};