C++ 使用模板实现单例模式

来源:互联网 发布:stage淘宝官网 编辑:程序博客网 时间:2024/05/16 09:39

模板类:

#ifndef SingleTon_hpp#define SingleTon_hpptemplate <typename T>class Singleton{public:    static T* getInstance()    {        if (m_pInstance == nullptr)            m_pInstance = new T();        return m_pInstance;    }        static void destroyInstance()    {        delete m_pInstance;        m_pInstance = nullptr;    }    private:    Singleton(void);    virtual ~Singleton(void);    Singleton(const Singleton&);    Singleton& operator = (const Singleton&);private:    static T* m_pInstance;};template <class T> T*  Singleton<T>::m_pInstance = nullptr;#endif /* SingleTon_hpp */



下面是在类中使用

class A{public:    void show();};typedef Singleton<A> SingleA;//将类A定义为单例


在main中使用

int main{  A* a = SingleA::getInstance();  a->show();  //或者Singleton<A>::getInstance();}


0 0
原创粉丝点击