WinAPI

포인터형 싱글톤

Nin 2021. 1. 26. 02:34
class Test
{
private:
   static Test* pInst;
public:
   static Test* Inst()
   {
      if(nullptr == pInst)
      {
         pInst = new Test();
      }
      
      return pInst;
   }
private:
   Test()
   {
   }
public:
   ~Test()
   {
   }
};

Test* Test::pInst = nullptr;

이렇게 사용하는 방식으로 싱글톤은 하나의 객체만 생성하기 위한 문법으로 

pInst가 nullptr일때 하나를 생성하고 리턴해주며 그 이후로는 처음에 만들어진

객체를 계속 리턴하는 방식이다.

new를 이용해서 생성했기 때문에 당연히 delete도 해줘야 하며 

이를 함수로 만들어서 객체가 필요없어질 경우 호출해주면 된다.

클래스가 프로그램 실행중 계속 필요하며 이 클래스가 필요없어지는 시점이

프로그램 종료시점과 같다면 굳이 포인터형으로 해야하는 생각이 든다.

굳이 종료시점에 삭제하는 함수를 호출해야 하기에..