최흥배 님이 쓰신 글 :
: 빌더 프로그래밍하다 궁금한점이 있어 질문합니다.^^;;
:
: 보통 폼에다 컨트롤들을 올리면 소소 코드에 실행시 컨트롤들이
: 동적으로 메모리에 올라 간다는걸 알수 있은데, 폼 종료시 이 컨트롤
: 들은 어떻게 메모리에서 제거됩니까...
:
: 혹 종료시 빌더가 제거 시켜준다면 제가 만약 폼에다 임의로 int형의
: 변수를 동적 할당 시켜 놓으면 제가 폼 종료시 이건 제가 메모리에서
: 삭제 시켜야 됩니까.. 아니면 이것도 알앗어 제거 시켜주는가요 ???
:
: 고수님들의 답변 부탁드립니다.^^
C++Builder FAQ에 임프님의 다음 글 중에서,
Owner 에 대한 설명을 보시면 이해하실 수 있을 겁니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=15
폼 위에 있는 TComponent 형 객체는 이 Owner 속성에 의해서
자동으로 메모리에서 제거됩니다.
TButton *MyButton = new TButton(Form1);
으로 컴포넌트를 동적 할당해도 자동으로 제거됩니다.
반면에 int와 같이 TComponent의 자손 클래스가 아닌 경우는 해당사항이 아닙니다.
폼의 OnClose() 이벤트에서 반드시 delete 명령으로 메모리를 수동으로 해제하여야 합니다.
|