C++单例模式

设计模式是编程的重点,往往在面试时都会考查,而单例模式是最为简单、最为常见、也最该掌握的模式。所以面试时对设计模式的考查考的最多的就是单例模式。
下面我们就来看看单例模式如何实现(C++代码):

#include<iostream>  
using namespace std;  
  
class Singleton {  
    public:  
        static Singleton* Instance();  
    protected:  
        Singleton();  
    private:  
        static Singleton* _instance;   
};  
  
Singleton* Singleton::_instance=0;  
      
Singleton::Singleton()  
{  
        cout<<"Singleton..."<<endl;   
};  
          
Singleton*Singleton::Instance()  
{  
        if (_instance==0)   
        {  
            _instance=new Singleton();  
        }  
        return _instance;  
}  
  
int main(int argc,char* argv[])  
{  
    Singleton* sgn=Singleton::Instance();  
          
    return 0;  
}  



其中,Singleton类型的构造函数必须是protected的,保证该类型不可被实例化,静态成员函数Instance则用来实例化该类型,因为该函数是静态,所以每次调用都是同一个实例,这就保证了Singleton类型只能被实例化一次。

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment