-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
[7:00] 무한루프 안에서 소멸자 호출 관련 질문합니다
21.08.24 18:22 작성 조회수 143
1
7분대부터 나오는 예제에서 무한루프 안에 객체를 생성 하는데요
main 함수가 종료되지 않음에도 소멸자가 호출되는것을 볼 수 있습니다.
알아낸것이 n번째 루프에서 생성된 객체는 n+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번) 에만 해당되어서요!
답변 1