인프런 커뮤니티 질문&답변
[7:00] 무한루프 안에서 소멸자 호출 관련 질문합니다
해결된 질문
작성
·
240
1
7분대부터 나오는 예제에서 무한루프 안에 객체를 생성 하는데요
main 함수가 종료되지 않음에도 소멸자가 호출되는것을 볼 수 있습니다.
알아낸것이 n번째 루프에서 생성된 객체는 n+1 루프에서 소멸자가 호출이 되더라구요
왜 이렇게 소멸자가 호출이 되는지 알 수 있을까요??
퀴즈
51%나 틀려요. 한번 도전해보세요!
객체 지향 프로그래밍에서 클래스/객체의 주된 역할은 무엇일까요?
프로그램 실행 속도를 최적화하는 것
데이터를 처리하는 함수와 해당 데이터를 하나로 묶는 것
메모리 할당 및 해제를 자동화하는 것
다른 프로그래밍 언어로 코드를 변환하는 것
답변 1
2
안녕하세요!
이 부분은 <4.1 지역변수, 범위, 지속기간> 강의를 떠올리시면 이해하실 수 있습니다.
IntArray my_int_arr(1000) 객체는 범위가 while 문 안에서요! while 문 중괄호 안에서 처음으로 선언이 되었기 때문에 while 문 안에서만 수명을 가집니다. 따라서 한번의 반복이 끝나면 중괄호에서 이제 다시 while 문 조건문으로 가잖아요? 범위, 즉 중괄호에서 빠져나오게 되면 해당 반복문 내에서 처음으로 만들었던 my_int_arr 객체는 다른 반복시에는 사라진다는 것입니다. 그래서 이 과정에서 소멸자가 호출이 되는 것입니다.
그렇기에 1000번 반복했다면 1000번 소멸자가 호출되겠습니다. 왜냐하면 my_int_arr 는 while 문 안에서 선언되었기에 수명이 while문 반복 1번(=중괄호 1번) 에만 해당되어서요!






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