다음을 통해 공유


weak_ptr Class

약한 연결된에 대 한 포인터를 래핑합니다.

template<class Ty> class weak_ptr {
public:
    typedef Ty element_type;

    weak_ptr();
    weak_ptr(const weak_ptr&);
    template<class Other>
        weak_ptr(const weak_ptr<Other>&);
    template<class Other>
        weak_ptr(const shared_ptr<Other>&);

    weak_ptr& operator=(const weak_ptr&);
    template<class Other>
        weak_ptr& operator=(const weak_ptr<Other>&);
    template<class Other>
        weak_ptr& operator=(shared_ptr<Other>&);

    void swap(weak_ptr&);
    void reset();

    long use_count() const;
    bool expired() const;
    shared_ptr<Ty> lock() const;
    };

매개 변수

  • Ty
    약한 포인터에 의해 제어 되는 형식입니다.

설명

하나 이상의 관리 되는 리소스를 가리키는 개체를 설명 하는 템플릿 클래스 shared_ptr Class 개체입니다.weak_ptr 리소스를 가리키는 개체 참조 횟수가 자원의 영향을 주지 않습니다.따라서, 마지막으로 shared_ptr 해당 리소스를 관리 되는 개체가 소멸 될 경우에 리소스를 확보 되지 weak_ptr 개체가 해당 리소스를 가리키는.이 데이터 구조에서 사이클을 방지에 대 한 필수적입니다.

A weak_ptr 개체에서 생성 된 경우 리소스를 가리키는 있는 shared_ptr 에서 생성 된 경우 해당 리소스를 소유 하는 개체는 weak_ptr 해당 리소스를 가리키는 개체 또는 해당 리소스에 할당 된 weak_ptr::operator=.A weak_ptr 개체를 가리키는 리소스에 직접 액세스를 제공 하지 않습니다.코드 리소스를 사용 해야 하지 통해 지금 있는 shared_ptr 멤버 함수를 호출 하 여 만든 해당 리소스를 소유 하는 개체 weak_ptr::lock.A weak_ptr 개체가 있기 때문에 가리키는 리소스 해제 된 경우 만료 되었습니다 전부는 shared_ptr 리소스를 소유 하는 개체가 파괴 되었습니다.호출 lock 에 있는 weak_ptr 만료 된 개체는 빈 shared_ptr 개체를 만듭니다.

빈 weak_ptr 개체 모든 리소스를 가리키고 있지 있고 제어 블록이 없습니다.그 멤버 함수가 lock 빈 shared_ptr 개체를 반환 합니다.

둘 이상의 리소스에 의해 제어 되는 경우 주기가 발생 shared_ptr 상호 참조 개체를 보유 shared_ptr 개체입니다.예를 들어, 순환 연결 된 목록을 세 개의 요소가 있는 헤드 노드에 있는 N0. 해당 노드가 보유 하 고 있는 shared_ptr 다음 노드를 소유 하는 개체 N1. 해당 노드가 보유 하 고 있는 shared_ptr 다음 노드를 소유 하는 개체 N2. 해당 노드를 보유 한 shared_ptr 헤드 노드를 소유 하는 개체 N0, 주기를 닫기.이 상황에서 없음 참조 횟수 0이 적이 되 고 노드 주기에서 해제 되지 않습니다.주기의 마지막 노드를 제거 하기 위해 N2 개최 해야는 weak_ptr 개체를 가리키는 N0 대신에 shared_ptr 개체.이후는 weak_ptr 개체에서 소유 하지 않은 N0 영향을 주지 않습니다 N0의 참조 횟수 및 헤드 노드에 대 한 프로그램의 마지막 참조가 소멸 되 면 노드 목록에서도 소멸 됩니다.

Members

Bb982126.collapse_all(ko-kr,VS.110).gif생성자

weak_ptr::weak_ptr

weak_ptr를 생성합니다.

Bb982126.collapse_all(ko-kr,VS.110).gif메서드

weak_ptr::element_type

요소의 형식입니다.

weak_ptr::expired

소유권 만료 되는 경우 테스트 합니다.

weak_ptr::lock

자원의 단독 소유권을 가져옵니다.

weak_ptr::owner_before

반환 true 이 경우 weak_ptr 전에 주문 (또는 보다 작은) 제공 된 포인터입니다.

weak_ptr::reset

버전 리소스를 소유합니다.

weak_ptr::swap

두 맞바꿉니다 weak_ptr 개체입니다.

weak_ptr::use_count

카운트 수를 지정 합니다. shared_ptr 개체입니다.

Bb982126.collapse_all(ko-kr,VS.110).gif연산자

weak_ptr::operator=

대체 리소스를 소유합니다.

요구 사항

헤더: <memory>

네임 스페이스: std

참고 항목

참조

shared_ptr Class

기타 리소스

<memory> 멤버