그냥 변수라고 하면 좀 헷갈릴것 같은데요..
TComponent를 상속받아 만든 Class의 객체에만 해당됩니다.
TComponent를 상속받아 TMyButton을 만들었다고 가정할때
TMyButton *btn=new TMyButton(Form1);
위와같은 TMyButton을 생성하면
Form1이 free될때 TMyButton이 자동 free된다는 뜻입니다.
문론 Form1이 free되기 전에 생성한 TMyButton 을 먼저 free(delete) 시켜도 상관없구요
...
그럼..
cocolv 님이 쓰신 글 :
: 글 잘읽어봤습니다 정말 고맙습니다.
: 내용을 읽다가 이해가 안되는부분이 있는데
: 그렇다면 저생성자에서 초기화해준 동적생성한 변수를 포함한 모든 변수값은
: 소멸자에서 따로 메모리해제를 안해줘도 된다는 얘기인가요?
:
:
: 장성호 님이 쓰신 글 :
: : VCL에서 TComponnet를 상속받아 만드는 Class는
: :
: : Owner라는 property가 있는데요..
: : Owner는 생성자에서 저렇게 정해줍니다.
: :
: : Owner라는 것은 말 그대로 주인인데요..
: :
: : 옛날에 장례문화 순장제 처럼
: : 주인이 죽으면 종이나 하인을 같이 매장하는 풍습처럼
: :
: : Owner에 해당하는 객체가 free되면
: : servant(정확한 개념은 아님)에 해당하는 객체들이 자동으로 free되도록 되어있습니다.
: :
: :
: : --------------------------------------------
: :
: : design-time에 Form위에 올려진 모든 Component들은
: : Owner가 Form이 됩니다.
: :
: : 그래서 Form만 free하면 폼위에 올려진 나머지 Component 들은 자동으로 free되는것입니다.
: :
: : --------------------------------------------
: :
: : 위와같은 기능은 TComponent 클래스에 구현되어있는데요..
: :
: : TComponent를 상속받아서 위와같은 기능을 구현하고 싶으면..
: : 그렇게 만드시면 되구요
: :
: : 그렇지 않으면 걍 원하시는대로 만드시면 됩니다.
: :
: : 단. RADStudio에 Install할 Component-Package로 만드시려면
: : 해당 Component에 위와같은 생성자가 구현되어야 할 것입니다.
: :
: :
: : 그럼..
: :
: :
: :
: : ㅁㄴㅇㄻㄴㅇㄹ 님이 쓰신 글 :
: : : 볼란드 c++에서는 기본 생성되는 생성자는
: : :
: : : __fastcall Test(TComponent* Owner);
: : :
: : : 이런형태로 생겼는데요
: : :
: : : 인자값 TComponent* Owner는 무엇을 뜻하는지요?
: : :
: : : 또 __fastcall Test();를 제가 만들어서 사용하면 어떤점이 다른지 궁금합니다