안녕하세요.질문 또 할께요.. 컴포넌트 상속하는 걸 하구 있는데요.. constructor와 destructor을 만들다가..궁금한게 있었는데.. destructor은 거의 메소드이름이..Destroy이더라구요..Free인줄 알았는데.. 보통 Destroy라고 쓰는 메소드...
최용일
•
2001.03.13 04:44
안녕하세요. 최용일입니다.
Destroy는 객체의 destructor(소멸자)로써 객체를 메모리에서 제거하는 역활...
어린왕자
•
2001.03.13 20:41
글면여..용일님..
소멸자에 Free라는 이름을 써서..
가지고 있는 컴포넌트들을 Free를 시켜줘두 되나여...
최용일
•
2001.03.13 20:58
가능합니다. 델파이 4.0부터 메소드 override를 지원하기 때문에 다수의 생성자/소멸자를
가지게 할 수 ...
Destroy는 객체의 destructor(소멸자)로써 객체를 메모리에서 제거하는 역활을하는
특별한 메소드입니다. constructor(생성자)인 Create와는 반대되는 메소드이죠...
이 메소드는 자신이 nil인가를 체크하지 않습니다. 그렇기 때문에 이 메소드를 직접
호출했을때 그 객체가 nil인 경우는 심각한 문제가 생길수 있습니다. Free 메소드는
그 자신이 nil인가를 체크해서 nil이 아닐경우 Destroy를 호출해서 메모리에서 객체를
제거하게 합니다.
procedure TObject.Free;
begin
if (Self <> nil)
Destroy;
end; // 원래의 소스는 어셈블리로 되어 있지만 델파이구문으로 바꾸면 위와 같은 코드입니다.
^^ 항상 즐코하세요...
어린왕자 wrote:
> 안녕하세요.질문 또 할께요..
>
> 컴포넌트 상속하는 걸 하구 있는데요..
>
> constructor와 destructor을 만들다가..궁금한게 있었는데..
>
> destructor은 거의 메소드이름이..Destroy이더라구요..Free인줄 알았는데..
>
> 보통 Destroy라고 쓰는 메소드와 Free라고 쓰는 메소드의 차이점을 알고 싶습니다.
>