강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

bum7124님의 프로필 이미지
bum7124

작성한 질문수

홍정모의 따라하며 배우는 C++

8.6 소멸자 destructor

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

해결된 질문

작성

·

235

1

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

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

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

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

답변 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번) 에만 해당되어서요!

bum7124님의 프로필 이미지
bum7124
질문자

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

bum7124님의 프로필 이미지
bum7124

작성한 질문수

질문하기