单例模式的实现

Posted 倾耳听

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式的实现相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;
class CSingleton{
        private:
                static CSingleton *m_pInstance;
                CSingleton(){
                }
                ~CSingleton(){
                        if (m_pInstance == NULL) {
                                return;
                        }
                        delete m_pInstance;
                        m_pInstance = NULL;
                }
        public:
                static CSingleton * GetInstance() {
                        if(m_pInstance == NULL)
                                m_pInstance = new CSingleton();
                        return m_pInstance;
                }
};
CSingleton* CSingleton::m_pInstance = NULL;//类的静态成员变量需要在类外边初始化

int main() {
    CSingleton* single1 = CSingleton::GetInstance();
    CSingleton* single2 = CSingleton::GetInstance();
    if (single1 == single2) {
        cout<<"Same"<<endl;
    }
    return 0;
}

以上是关于单例模式的实现的主要内容,如果未能解决你的问题,请参考以下文章

spring的单例模式如何实现?

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式-b

js设计模式之单例模式实例

单例模式(下)特殊单例的实现

单例模式_反射破坏单例模式_枚举类_枚举类实现单例_枚举类解决单例模式破坏