블로그는 나의 힘!
[ Programing ]/Algorithm2016. 7. 25. 12:02

선언과 동시에 함수를 실행해야할 코드들이 있다.
대표적으로는 스레드를 담고 있는 객체라던지...
선언하고... 초기화하고... 시작하고... 실행하고...

 

일괄의 과정이 1개라도 틀리면 안되는 반드시 실행해야하는 함수들을 신경 안 쓰고 1줄로 해결하는 팁.

 

 

 

예를 들어 Class CObject가 있고

 

class CObject
{
public:
     CObject();
     ~CObject();

 

     void Initialize();
     bool Start();
     bool Run();
}

 

 

 

선언과 동시에 실행해야할 함수들이 있다면.

 

void main()

{

     // 생성 하고, 초기화하고, 시작하고, 실행하고...

     CObject* pObject = new CObject();
     if( NULL != pObject )
     {
          pObject->Initialize();
          pObject->Start();
          pObject->Run();
     }

 

     ( 중략 )

 

     SAFE_DELETE( pObject );

}

 

 

 

해당 CObject를 아래와 같이 바꾸면 1줄로 해결...

 

class CObject
{
public:
     ~CObject();

 

     // 생성과 동시에 함수 실행.
     static CObject* CreateCObject();

 

private:
     CObject();

 

     void Initialize();
     bool Start();
     bool Run();
};

 

CObject* CObject::CreateCObject()
{
     CObject* pObject = new CObject();
     if( NULL != pObject )
     {
          pObject->Initialize();
          pObject->Start();
          pObject->Run();
     }

     return pObject;
}


void main()
{
     // 1줄 끝.
     CObject* pObject = CreateCObject();

 

     ( 중략 )

 

     SAFE_DELETE( pObject );
}

 

 

뭐 그렇다고....

 

 

Posted by Mister_Q