knight가 소멸될때 자동적으로 pet객체도 소멸되는건가요.
-> 아닙니다
따로 delete를 해줄필요가 없는건가요
-> 어딘가에서 해줘야 합니다. 설계에 따라 knight가 해줄 수도 있고 밖에서 해줄 수도 있겠죠
작성
·
289
0
깊은복사를 구현할떄 new를 사용해서 새로운 펫객채를 힙에다가 생성하는데 이건 knight가 소멸될때 자동적으로 pet객체도 소멸되는건가요. 따로 delete를 해줄필요가 없는건가요
답변 3
0
설계에 따라 다른데 ~Knight에서 Pet의 delete를 담당했다면,
Pet의 생명주기가 Knight의 생명주기를 따라간다고 설계한 상황이라 볼 수 있습니다.
Knight가 죽고 덩그라니 펫이 돌아다니는 상황은 없겠죠.
0
강의 마지막 부분에서 ~Knight() 부분의 소자에서 delete _pet이 있기 때문에 깊은 복사를 한뒤 Knight 변수가 해제(소멸)되어야 할때 소멸자가 불러지면서 _pet이 delete되기 떄문에 자동적으로 pet 객체도 소멸되는것 아닌가요?
즉, 강의 마지막 부분의 경우에서는 knight가 해주는 경우라고 이해해도 무방한가요?
0
knight가 소멸될때 자동적으로 pet객체도 소멸되는건가요.
-> 아닙니다
따로 delete를 해줄필요가 없는건가요
-> 어딘가에서 해줘야 합니다. 설계에 따라 knight가 해줄 수도 있고 밖에서 해줄 수도 있겠죠