zoukankan      html  css  js  c++  java
  • 单例模式

    保证一个类只有一个实例,并提供一个访问它的全局访问点。

    类图:

    代码:

    template<typename T>
    class Singleton
    {
    public:		//缺少访问控制
    	static T* Instance()
    	{
    		if(single==NULL)
    		{
    			single=new T();
    		}
    		return single;
    	}
    private:
    	static T* single;
    	Singleton();
    };
    
    template<typename T>
    T* Singleton<T>::single=NULL;
    
    class Graduate
    {
    public:
    	void print()
    	{
    		cout<<"i will be success"<<endl;
    	}
    };
    #include "stdafx.h"
    #include "Singleton.h"
    #include<iostream>
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
    	cout<<"-----------单例模式---------"<<endl;
    	Graduate *s1= Singleton<Graduate>::Instance();
        Graduate *s2 = Singleton<Graduate>::Instance();
       
    	if(s1==s2)
    	{
    		cout<<"这两个对象是一样的"<<endl;
    	}
    	return 0;
    }
    

    测试结果:

    -----------单例模式---------
    这两个对象是一样的
    请按任意键继续. . .

  • 相关阅读:
    [HNOI2008] Cards
    loj #136
    a problem
    dp * 3
    STL
    套题1
    luogu 4211
    loj #2319
    loj #2316
    luogu 1144
  • 原文地址:https://www.cnblogs.com/fistao/p/3132739.html
Copyright © 2011-2022 走看看