Quantcast
Channel: C++博客-所有随笔
Viewing all articles
Browse latest Browse all 7882

单例模式

$
0
0
单例模式: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。

#include  <iostream>
using namespace std ;

template 
<class T>
class ST{
public:
    
static T*  GetInstance() {
        
if(m_pInstance == NULL){
            m_pInstance 
= new T ;
        }
        
return m_pInstance ;
    }
protected:
    
static T* m_pInstance ;

};

/// \模板静态成员初始化
template <class T>
*  ST< T>::m_pInstance = (T*)NULL ;


class AB
{
public:
    AB(){

    }
    
~AB(){

    }
    
virtual void Init(){
        cout
<<"AB::Init" <<endl;
        
return ;
    }
};

int main(){

    
/// \TEST
    //ST<AB> ab ;
    AB* pab ;
    pab 
= ST<AB>::GetInstance() ;
    
// pab = ab.GetInstance() ;
    pab->Init() ;

    
return 0 ;
}


Fanze 2013-07-31 22:28 发表评论

Viewing all articles
Browse latest Browse all 7882

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>