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

  • 相关阅读:
    (转载)SAPI 包含sphelper.h编译错误解决方案
    C++11标准的智能指针、野指针、内存泄露的理解(日后还会补充,先浅谈自己的理解)
    504. Base 7(LeetCode)
    242. Valid Anagram(LeetCode)
    169. Majority Element(LeetCode)
    100. Same Tree(LeetCode)
    171. Excel Sheet Column Number(LeetCode)
    168. Excel Sheet Column Title(LeetCode)
    122.Best Time to Buy and Sell Stock II(LeetCode)
    404. Sum of Left Leaves(LeetCode)
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/2756576.html
Copyright © 2011-2022 走看看