C++単例モデルの例

734 ワード

#include <iostream>
#include <new>
using namespace std;

class CGlobalInstance
{
  private:
       CGlobalInstance();
       virtual ~CGlobalInstance();
       static CGlobalInstance* m_this;
  public:  
   static CGlobalInstance* get_instance();
   void out();
};


CGlobalInstance::CGlobalInstance()
{

}


CGlobalInstance::~CGlobalInstance()
{

}

void CGlobalInstance::out()
{
    cout<<"hi man"<<endl;
}

CGlobalInstance* CGlobalInstance::get_instance()
{
   if (NULL == m_this)
   {
     m_this = new CGlobalInstance();
   }
   return m_this;
}

CGlobalInstance* CGlobalInstance::m_this = NULL;

int main(void)
{
  CGlobalInstance::get_instance()->out();
}