Cpp에서 델파이의 Initialization, Finalization 흉내내기

From YYpBD's MediaWiki

Jump to: navigation, search
이 팁은 아마도 볼랜드 포럼에서 봤던거 같다.

델파이에는 유용한 것이 있다.

유닛을 Include시켜놨을때 유닛 맨 하단부분에 Initialization, Finalization 쪽에 코딩을 해놓으면 메인이 시작되기 전에 Initialization 부를 실행하고 메인쪽이 모두 종료되고 난 후에 Finalization 부가 실행된다.

var
  a: PChar;

initialization
  GetMem( a, 1024 );

finalization
  FreeMem( a );

이렇게 해놓으면 메인이 실행되기 전에 GetMem을 실행하고 종료되고 난 후에 FreeMem을 실행한다.

Singleton같은 유일 객체 패턴 형식에 유리하다.

C++에는 언어에서 지원해주는 것은 없다.

다만 얍삽이로 처리해야할뿐...

우선 Initialization, finalization을 처리할 클래스를 만든다.

TInit::TInit()
{
        Initialization();
}

TInit::~TInit()
{
        Finalization();
}

그리고 생성자와 소멸자에 Initialization, Finalization 처리를 추가한다.


그리고 중요~~

#include "UclsInit.h"
static TInit Init;

static으로 클래스를 하나 만든다.

이렇게 하면 클래스가 static으로 실행되기 때문에

메인이 실행되기전에 클래스 생성자가 실행되고

종료되고 난 후에 클래스 소멸자가 실행된다.


Singleton 처리시에 유용하게 쓰일듯하다...


맞춤검색