Singleton

来源:互联网 发布:node module.exports 编辑:程序博客网 时间:2024/05/01 19:26
很简单的Singleton的实现,保持全局该类型变量的唯一性,在首次调用的时候创建,系统结束自行删除。
这里用到了上一篇的Smart Pointer
 
template<class T>
class Singleton
{
public:
        static T*      Instance(void) {
                if (m_pInstance == NULL)
                        m_pInstance = new Singleton;
                return &(m_pInstance->m_Data);
        }
 
private:
        T               m_Data;
        static SmartPtr< Singleton<T> >        m_pInstance;
};
 
template<class T>
SmartPtr< Singleton<T> > Singleton<T>::m_pInstance;
 
// example
// #define      g_A     (*Singleton<classA>::Instance())
 
原创粉丝点击