작성
·
237
·
수정됨
0
vector<shared_ptr<object>> v;
라는것을 사용했을때 , shared_ptr 은 생명주기가 다하면 알아서 자동으로 소멸되는데
vector 안에 object 를 넣게되면은 object 의 생명주기 가 연장되는건가요 ?
만약에 생명주기가 연장되었다고 했을때
vector<shared_ptr<Object>>& v = ObjectManager::GetInstance()->Get_Object();
for (int i = 0; i < v.size(); ++i)
{
v[i]->Update();
}
위처럼 벡터의 참조값을 를 가져와서
update 도중 vector 안에 원소를 reset 하여 참조카운트가 0 이되어 삭제된다 치면은
썡포인터와 다를게없어지는거아닌가욤?
답변 1
0
그냥 단순히 shared_ptr을 어디에선가 들고 있으면
(그게 vector일 수도, 외부일 수도 있죠)
해당 shared_ptr로 관리되는 Object는 소멸되지 않습니다.
update 도중 vector안에 원소를 reset한다는 것은 무슨 의미인지 잘 이해가 가질 않네요.