자식 클래스의 동적메모리를 부모 클래스에서 받고 메모리 해체시에 질문
글쓴이: ikpil / 작성시간: 목, 2008/05/08 - 12:01오전
1. 부모 클래스를 만든다. 12바이트, 소멸자는 가상 소멸자 4바이트
2. 자식 클래스를 만든다. 8바이트, 부모를 상속 받는다.
3. 부모 클래스* hehe = new 자식클래스
//
여기서 질문
(1) *hehe 는 16바이트(가상 테이블 포함)로 출력 됩니다.
이때 자식클래스는 8바이트 해서 총 24바이트가 new에 의해서 할당되나요?
4. delete hehe;
//
여기서 질문
(1) 자식클래스가 24바이트 할당 받았다면 delete hehe는 몇바이트 해체를 해주나요?
Forums:
(1) 당연합니다. 자식
(1) 당연합니다. 자식 클래스를 생성했으므로 이때 할당되는건 sizeof(자식클래스)입니다.
(2) 부모클래스의 소멸자가 가상 함수로 선언되어있다면, 포인터의 형이 부모클래스이던 자식 클래스이던 처음 할당된 메모리가 전부 해제됩니다.
보통 가상함수와는 좀 다르게, 소멸자가 가상함수로 선언되면 자식 클래스의 소멸자부터 부모클래스의 소멸자를 차례대로 호출해가게됩니다.
감사합니다.
감사합니다. 해체가 된다니 마음이 놓입니다.^^
http://www.ikpil.com
댓글 달기