单例模式: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
#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>
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 ;
}