• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

[7:00] 무한루프 안에서 소멸자 호출 관련 질문합니다

21.08.24 18:22 작성 조회수 143

1

7분대부터 나오는 예제에서 무한루프 안에 객체를 생성 하는데요

main 함수가 종료되지 않음에도 소멸자가 호출되는것을 볼 수 있습니다.

알아낸것이 n번째 루프에서 생성된 객체는 n+1 루프에서 소멸자가 호출이 되더라구요

왜 이렇게 소멸자가 호출이 되는지 알 수 있을까요?? 

답변 1

답변을 작성해보세요.

2

안소님의 프로필

안소

2021.08.25

안녕하세요!

이 부분은 <4.1 지역변수, 범위, 지속기간> 강의를 떠올리시면 이해하실 수 있습니다.

IntArray my_int_arr(1000) 객체는 범위가 while 문 안에서요! while 문 중괄호 안에서 처음으로 선언이 되었기 때문에 while 문 안에서만 수명을 가집니다. 따라서 한번의 반복이 끝나면 중괄호에서 이제 다시 while 문 조건문으로 가잖아요? 범위, 즉 중괄호에서 빠져나오게 되면 해당 반복문 내에서 처음으로 만들었던 my_int_arr 객체는 다른 반복시에는 사라진다는 것입니다. 그래서 이 과정에서 소멸자가 호출이 되는 것입니다.

그렇기에 1000번 반복했다면 1000번 소멸자가 호출되겠습니다. 왜냐하면 my_int_arr 는 while 문 안에서 선언되었기에 수명이 while문 반복 1번(=중괄호 1번) 에만 해당되어서요!

bum7124님의 프로필

bum7124

질문자

2021.08.25

자세하고 친절한 답변 정말 감사합니다