간단한 질문
글쓴이: twins99 / 작성시간: 목, 2005/11/17 - 7:42오후
다음 c++ 코드를 좀 봐 주세요.
class A{
int m_s;
A(int nn){
m_s = nn;
}
}
main(){
A *a;
a=new A(3);
}
설명을 위해 간단히 써봤는데요, 마지막에 new로 메모리를 할당한
a는 명시적으로 delete해 줘야 하는건가요? class A의 소멸자에 자신이 만든 변수들의 memory를 release해 주는 코드가 보함되어 있다면, a의 scope이 끝나는 시점에 자동으로 free되지 않을까요? 답변 부탁드립니다.
Forums:
new가 있으면 delete가 있어야 합니다.아래처럼 로컬변수라면 s
new가 있으면 delete가 있어야 합니다.
아래처럼 로컬변수라면 scope가 끝나는 시점에 소멸자가 호출됩니다.
A a(3);
그 소멸자를 호출 해주는 것이 delete입니다..로컬변수라면 블
그 소멸자를 호출 해주는 것이 delete입니다..
로컬변수라면 블럭이 끝나는 시점에서 자동으로 호출이 되구요.
new로 생성한 객체의 경우 소멸자를 호출할 수 있는 방법이 delete말고는 없으므로 delete를 안하고는 소별자는 호출 되지 않으므로 소멸자 안에서 free를 하는 코드를 넣어봤자 작동을 안합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기