class생성자랑 소멸자 관련 질문인데요..
다옴
아직 초보라 개념도 부족하구요..
조금 햇갈리는 부분이 있어서 질문드려요
질문1)
우선 아주 대충, 코드구성이
class ABC {
private :
int n;
public :
ABC() {
n=0;
};
};
int main(void)
{
ABC *ab = new ABC();
.
.
.
}
제생각에 대충 질문에 필요한 부분만 쓰면 이렇게 되있다고 하면,,
new를 썻으니깐, main함수 제일 밑에 delete ab 를 써줘야 하는건가요???
써줘야되면,class 내부에 ~ABC()도 만들어줘야 되는건가요??질문2)
제가 책을 보다가 궁금증이 생겼는데요,
역시 대충 코드를 살펴보면,
int main()
{
.
.
.
Employee *e1Ptr = new Employee( Susan, Baker );
.
.
.
delete e1Ptr;
e1Ptr = 0; // 이부분이 뭘 뜻하는건가요??
.
.
}
delete를 한다음에 거기다가 0을 넣는거는 왜일까요??
궁금하네요~ 가르쳐 주세요~ ㅠ.ㅡ
-
회사원
아~ 친절한 답변 감사해요~!!
-
데빌의눈물
음.. 책을 보시고 하시는거면, 해당 책 관련 사이트에 도움을 받는게 제일 좋죠.
질문1)은 C++에서 (인자가 없는)기본생성자와 소멸자는 생략할수가 있어요. 기본 생성자의 경우 무조건 생략할수가 있는건 아니구요. 여기에도 예외사항이 있지만, 우선은 기본생성자와 소멸자는 생략가능 하다라고 기억해두세요.
그리고,질문하신 delete ab;의 경우, 생성한 객체(ab)가 삭제되면서 소멸자가 자동으로 호출됩니다.
소멸자는 생략가능하다 라고 했으므로, 생