|
클래스 설계시 사용자가 생성자를 정의하고 동적으로 메모리 할당하게 만들었습니다.
소멸자는 정의하지 않았습니다.간단히 예를 들어 아래처럼.
class test
{
int *itsval;
public:
test();
};
test::test()
{
itsval=new int;
*itsval=5;
}
이 클래스의 객체 no1 이라는 것을 만들었을때 itsval 이 동적으로 할당이 되며 5 라는 값이
들어가게 되는데... 이 객체가 사라지게 될때 컴파일러가 제공하는 기본 소멸자는
동적으로 할당된 메모리를 자동으로 제거하되는 건가요?
아니면 직접 소멸자를 정의해서 메모리를 해제 해주어야 하는건가요?
책을 보다 갑자기 궁굼증이 생겨서 질문올립니다.
|