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

pakheae님의 프로필 이미지
pakheae

작성한 질문수

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

스마트포인터와 벡터와의 함께사용 ?

작성

·

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

그냥 단순히 shared_ptr을 어디에선가 들고 있으면
(그게 vector일 수도, 외부일 수도 있죠)
해당 shared_ptr로 관리되는 Object는 소멸되지 않습니다.

update 도중 vector안에 원소를 reset한다는 것은 무슨 의미인지 잘 이해가 가질 않네요.

pakheae님의 프로필 이미지
pakheae

작성한 질문수

질문하기