zoukankan      html  css  js  c++  java
  • 设计模式之实现---单件模式

    /*************************************

    CSingleton.h

    **************************************/

    #pragma  once
    #include <iostream>
    #include <string>
    using namespace std;

    class CSingleton
    {
    private:
     CSingleton(){
      cout<<"new instance created!"<<endl;
     };
     CSingleton(const CSingleton& _copyInst);
    private:
     static CSingleton* g_singleton;

    public:
     //这里是单键模式类的关键
     //我在这里实现的是对象的单件,而不是类的单件。
     //要实现类的单件的话,就必须要把类的成员都变为static.
     static CSingleton* getSingleton(){
      if(!g_singleton)
       g_singleton = new CSingleton();
      return g_singleton;
     }
    };

    /******************************************

    testclass.h

    *******************************************/

    #include "CSingleton.h"
    #include <iostream>
    using namespace std;

    class testSingleton
    {
    public:
     testSingleton(){
      CSingleton::getSingleton();
      cout<<"ok, called!"<<endl;
     }
    };

    /*******************************************

    CSingleton.cpp

    ********************************************/

    #include "CSingleton.h"

    CSingleton* CSingleton::g_singleton = NULL;

    /*******************************************

    testSingleton.cpp

    ********************************************/

    /*
     设计模式: 单件模式
     by 何戬, hejian@cad.zju.edu.cn
    */

    #include <iostream>
    #include "CSingleton.h"
    #include "testclass.h"
    using namespace std;

    int main()
    {
     CSingleton::getSingleton();
     CSingleton::getSingleton();

     //testSingleton newtest;

     return 0;
    }

  • 相关阅读:
    Cookie数据的编码及解码
    删除单链表节点,时间复杂度为O(1)
    匹配URL
    C#文本框允许使用ctrl+A
    实现统计一个字符串所含的不同字符的总数
    调用win32 api 函数SendMessage() 实现消息直接调用
    关于C++的const对象
    从一个文本文件中找出使用频率最高的五个字符
    C++基础中的基础(深拷贝与浅拷贝)
    python+Django CRM客户关系管理系统开发(十)--左右移动选择框功能开发
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/2756576.html
Copyright © 2011-2022 走看看