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;
    }

  • 相关阅读:
    HTML5标签变化
    接口测试基础入门学习
    1.1Axure简介
    win 7命令行大全
    程序集强签名
    源代码的文件头格式化
    redmine2.3环境搭建
    静态成员和方法的使用场合及利弊分析
    .Net Memory Profiler入门
    TransactionScope类
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/2756576.html
Copyright © 2011-2022 走看看