雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++中的单例模式

Posted on 2014-04-08 19:12  huhuuu  阅读(263)  评论(0编辑  收藏  举报

单例模式,故名思意是只有单个实例对象的类。所以要控制构造函数,赋值函数的使用。

注意对类静态对象赋予初值的方法。

#include<iostream>
using namespace std;

class CSingleton
{
    //其他成员
public:
    static CSingleton* GetInstance()
    {
        if ( m_pInstance == NULL )  //判断是否第一次调用
            m_pInstance = new CSingleton();
        return m_pInstance;
    }

    ~CSingleton(){
        printf("use delete!");
    };
private:
    CSingleton(){};
    CSingleton &operator = (CSingleton ){};static CSingleton * m_pInstance;
};

  

CSingleton * CSingleton::m_pInstance = NULL; //类静态成员的初始化要放在全局,并且要用定义的形式

int main(){
    CSingleton* p1 = CSingleton :: GetInstance();

    CSingleton* p2 = CSingleton :: GetInstance();//对象地址一样的


    delete  CSingleton :: GetInstance(); // 必须显示的删除
    getchar();
}