(¿©±â¿¡¼ ¼³¸íÇÏ´Â ³»¿ëÀÇ ¼Ò½ºÄڵ带 ÷ºÎÇß½À´Ï´Ù.)
FreeAndNil¿¡ °üÇÑ ¹®Á¦´Â °Ë»öÇØ º¸¸é ¿©·¯ Â÷·Ê ³íÀÇ°¡ µÈ ÀûÀÌ ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
FreeAndNil ÀÚü¿¡´Â »ç½Ç Å« ¹®Á¦´Â ¾øÀ½¿¡µµ ºÒ±¸ÇÏ°í
Test1.Free;
Test1 := nil;
ÀÌ·¸°Ô Çϸé Àß µÇ´ø °ÍÀÌ
FreeAndNil( Test1 );ÇÏ¸é ¹®Á¦°¡ µÈ´Ù´Â °ÍÀÌ ´ëÇ¥ÀûÀÎ °æ¿ìÀÔ´Ï´Ù.
±×·± ¹®Á¦¸¦ Á¦±âÇÑ ´ëÇ¥ÀûÀÎ °æ¿ì°¡ °Á °Ô½ÃÆÇ¿¡ ÀÖ½À´Ï´Ù.
http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&st=S&keyword=FreeAndNil&indx=195996&keyword1=FreeAndNil&keyword2=&page=1Àú¿Í ´Ù¸¥ ºÐÀÌ ÀÌ ±Û¿¡¼ '
FreeAndNilÀº ¾ÈÀüÇÏ´Ù'¶ó°í ÁÖÀåÀ» Çß½À´Ï´Ù¸¸..
»ç½Ç Àú´Â ±×µ¿¾È ÀüÇô ¹®Á¦°¡ ¾ø¾ú°í
FreeAndNilÀÇ ¼Ò½º¸¦ ºÁµµ ¹®Á¦°¡ ¾øÀ» °ÍÀ¸·Î »ý°¢µÇ¾îÁ®¼ '¾ÈÀüÇÏ´Ù'¶ó´Â ¸»À» ÀڽŠÀÖ°Ô Çߴµ¥..
°£°£È÷ ´Ù¸¥ »ç¶÷µéÀÌ ÄÚµùÇÑ °ÍÀ» º¸¸é¼ 'ÄÚµù½À°ü¿¡ µû¶ó¼ ¹®Á¦°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù'¶ó´Â °ÍÀ» ±ú´Þ¾Ò¾ú½À´Ï´Ù.
ÀÌ »ç½ÇÀ» ±î¸Ä°Ô ÀØ°í ÀÖ¾ú´Âµ¥ Á¶±Ý Àü¿¡ ¸Þ½ÅÀú·Î ´©±º°¡°¡ ±×°ÍÀ» ¹°¾îº¸´Â ¹Ù¶÷¿¡ »ý°¢ÀÌ ³ª¼ ¶Ç ±î¸Ô±â Àü¿¡ Àû¾î ³õ½À´Ï´Ù.
½ÃÀÛ.
´ÙÀ½°ú °°Àº Ŭ·¡½º°¡ ÀÖ´Ù°í Ĩ½Ã´Ù.
type
TTest = class
public
procedure ShowMsg(const S: String); virtual;
destructor Destroy; override;
end;
implementation
var
Test1: TTest;
destructor TTest.Destroy;
begin
Test1.ShowMsg( 'Destroy' ); inherited;
end; procedure TTest.ShowMsg(const S: String);
begin
ShowMessage( S );
end; |
TTest¶ó´Â Ŭ·¡½º°¡ ÀÖ°í..
Test1: TTest;¿Í °°ÀÌ º¯¼ö¸¦ ¼±¾ðÇؼ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.
ÀÌ »óÅ¿¡¼ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ °æ¿ì..
Test1 := TTest.Create;
try
Test1.ShowMsg( 'Button1Click' );
finally
Test1.Free;
Test1 := nil;
end; |
ÀÌ °æ¿ì¿¡´Â ÀüÇô ¹®Á¦°¡ ¾ø½À´Ï´Ù. ±×·¯³ª ´ÙÀ½°ú °°ÀÌ
FreeAndNilÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¹®Á¦°¡ »ý±é´Ï´Ù.
Test1 := TTest.Create;
try
Test1.ShowMsg( 'Button1Click' );
finally
FreeAndNil( Test1 );
end; |
ÀÌ ¹®Á¦ÀÇ ¿øÀÎÀº ¼Ò¸êÀÚ
Destroy¿¡¼
Test1 º¯¼ö¸¦ »ç¿ëÇÏ°í ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.
´ÙÀ½Àº
FreeAndNilÀÇ ¼Ò½ºÀÔ´Ï´Ù.
procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end; |
ÀÌ ¼Ò½º¸¦ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ Free And NilÀÌ ¾Æ´Ï°í Nil And FreeÀÔ´Ï´Ù.
±×·¯¹Ç·Î
FreeAndNil( Test1 ); À» ÇÏ¸é ¼Ò¸êÀÚ
Destroy°¡ ½ÇÇàµÇ´Â ½ÃÁ¡¿¡¼
Test1 º¯¼ö´Â
nil·Î ¼¼ÆõǾîÁ® ÀÖ°í ±×°ÍÀ» ¾×¼¼½º ÇßÀ¸¹Ç·Î ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
¹°·Ð ÀÌ·¸°Ô ¼Ò¸êÀÚ¿¡¼ ÀÚ½ÅÀÇ ÀνºÅϽº º¯¼ö¸íÀ» Á÷Á¢ »ç¿ëÇÏ´Â °æ¿ì´Â ¸¹Áö ¾Ê°ÚÁö¸¸ (ÀÌÇØ´Â ¾ÈµÇÁö¸¸..»ý°¢º¸´Ù´Â ¸¹´õ¶ó´Â..¤Ñ¤Ñ; ) ¼Ò¸êÀÚ¿¡¼ ´Ù¸¥ Ŭ·¡½º¸¦
FreeÇÏ°í ±× ´Ù¸¥ Ŭ·¡½º¿¡¼ ÀÚ½ÅÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÏ´Â °æ¿ì.. Áï, ÇÑ ¹ÙÄû µ¹¾Æ¼ °á°úÀûÀ¸·Î ¼Ò¸êÀÚ¿¡¼ ÀÚ½ÅÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÏ´Â ²ÃÀÌ µÇ´Â °æ¿ì¿¡´Â
FreeAndNilÀ» »ç¿ëÇÏ¸é ¿¡·¯°¡ ³³´Ï´Ù.
Àú´Â ¾îÁö°£Çؼ´Â Àü¿ªº¯¼ö »ç¿ëÀº ÃÖ¼ÒÈÇϴµ¥ Àü¿ªº¯¼ö¸¦ ½À°üÀûÀ¸·Î ¸¹ÀÌ »ç¿ëÇÏ´Â »ç¶÷µéÀ̳ª ÆûÀ» ¸¹ÀÌ »ç¿ëÇÏ´Â °æ¿ì¿¡ ÀÌ·± ÀÏÀÌ ÀÚÁÖ »ý±é´Ï´Ù¸¸ µÎ °æ¿ì ¸ðµÎ Àü¿ªº¯¼ö°¡ ¸¹´Ùº¸´Ï ÀÌ·± ÄÚµùÀÌ ¸¸µé¾îÁú È®·üÀÌ ³ô¾ÆÁö´Â °Í °°½À´Ï´Ù.
°³ÀÎÀûÀÎ »ý°¢À¸·Î´Â »ç½Ç
FreeAndNilÀÇ À߸øÀ̶ó±â º¸´Ù´Â ±×·¸°Ô ÄÚµùÇÏ´Â °ÍÀÌ ´õ ÁÁÁö ¾ÊÀº °Í °°½À´Ï´Ù¸¸.. ±× Á¤µµ´Â °³ÀÎÀûÀÎ ÃëÇâÀ¸·Î ÀÎÁ¤ÇÒ ¼ö ÀÖÀ» °Í °°½À´Ï´Ù. ±×·¯¹Ç·Î
FreeAndNilÀ» »ç¿ëÇÏ¸é¼ ¹®Á¦°¡ µÈ °æÇèÀÌ ÀÖ´Â »ç¶÷Àº ±×³É ¾È¾²¸é µÈ´Ù´Â °á·ÐÀÔ´Ï´Ù. (
FreeAndNilµµ ³ª»Ú³×.. ¿Ö ±×·¸°Ô ¸Í±Û¾î°¡Áö°í....)
³¡.
### ¿î¿µÁø ###
º» °Ô½Ã¹°ÀÇ Ã·ºÎÆÄÀÏÀº ¹ÙÀÌ·¯½º¿¡ °¨¿°µÇ¾î »èÁ¦Ã³¸®µÇ¾ú½À´Ï´Ù.
ÇØ´ç ¹ÙÀÌ·¯½º´Â w32