C++스마트 포인터--(스마트 포인터 인식)
1739 단어 C++1x
: , ,
, 。
std::shared_ptr
std::shared_ptr , shared_ptr ,
delete, 。 , std::shared_ptr
new , 。std::make_shared new,
std::make_shared , std::shared_ptr 。
std::shared_ptr get() , reset , use_count()
。
std::unique_ptr
std::unique_ptr , ,
std::make_unique C++14 ,make_unique ,C++11 std::make_unique, :
template
std::unique_ptr make_quique( Args&& ...args) {
return std::unique_ptr( new T(std::forward(args)...));
}
, 。 , std::move unique_ptr。
std::weak_ptr 당 std::sharedptr 에 자원 을 방출 할 수 없 는 문제 가 존재 합 니 다.이 문 제 를 해결 하 는 방법 은 약 한 인용 지침 std::weakptr,std::weak_ptr 는 약 한 인용(비교 해 보면 std:sharedptr 는 강 한 인용 이다.약 한 인용 은 인용 계수 증 가 를 일 으 키 지 않 습 니 다.
std::weak_ptr * -> , , std::shared_ptr
, expired() , true。 false。
총결산
, ,C++1x ,
new/delete , 。
참고 자료:
《깊이 이해 C+11>
《고속 착수 C++11/14/17>
관련 서적 다운로드 주소