weak_ptr Class
Zayıf bağlantılı bir işaretçi sarar.
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;
};
Parametreler
- Ty
Denetlenen zayıf işaretçi türü.
Notlar
Şablon sınıfı bir veya daha fazla yönetilen bir kaynağa işaret eden bir nesneyi tanımlayan shared_ptr Class nesneler. weak_ptr Kaynağın başvuru sayısı bir kaynağa işaret eden nesneleri etkilemez. Bu nedenle, ne zaman son shared_ptr o kaynağı yöneten nesne bozulur bile kaynak uğrayıncaya weak_ptr o kaynağa işaret eden nesneler. Bu, veri yapılarını döngülerin kaçınmak için önemlidir.
A weak_ptr nesne karşı oluşturulmuş, bir kaynağa işaret eden bir shared_ptr karşı oluşturulmuş, bu kaynağın sahibi olan nesne bir weak_ptr o kaynağa işaret eden nesne veya bu kaynak için onunla atanmışsa, weak_ptr::operator=. A weak_ptr nesne için işaret eden kaynağa doğrudan erişim sağlamaz. Kaynak kullanması gereken kodu yapar böylece aracılığıyla bir shared_ptr üye işlevini çağırarak oluşturulan bu kaynağın sahibi olan nesne weak_ptr::lock. A weak_ptr nesne için işaret eden kaynak boşaltıldıktan zaman zaman aşımına tüm shared_ptr kaynağa sahip nesneleri yok. Arama lock üzerinde bir weak_ptr boş shared_ptr nesneyi doldu nesnesi oluşturur.
Boş weak_ptr nesne için herhangi bir kaynağa işaret etmiyor ve hiçbir denetim bloğu vardır. Üye işlevi lock boş shared_ptr nesneyi döndürür.
İki veya daha fazla kaynak tarafından denetlenen bir döngü oluşur shared_ptr karşılıklı başvuru nesneleri tutmak shared_ptr nesneler. Örneğin, bir dairesel bağlantılı liste üç merkez düğümü vardır N0; Bu düğüm tutan bir shared_ptr sonraki düğüme sahip olan nesneyi N1; Bu düğüm tutan bir shared_ptr sonraki düğüme sahip olan nesneyi N2; Bu düğüm, tutan bir shared_ptr sahibi merkez düğümü, nesne N0, dönüşümü kapatılıyor. Bu durumda, başvuru sayıları hiçbiri bugüne kadar sıfır olur ve düğümleri döngüsünün açılmayacaktır. Son düğümü döngüsü ortadan kaldırmak için N2 gerektiği bir weak_ptr gösteren nesne N0 yerine bir shared_ptr nesne. Bu yana weak_ptr nesnesine ait olmayan N0 bu etkilemez N0's başvuru sayısı ve merkez düğümü son başvuru programın kaldırıldığı zaman listeden düğümleri de yok edilir.
Üyeler
Oluşturucular
Oluşturan bir weak_ptr. |
Yöntemler
Öğe türü. |
|
Sahipliği sona erdi sağlayıp sağlamadığını test eder. |
|
Özel bir kaynak sahipliğini alır. |
|
Döner true bu weak_ptr önce sipariş (veya az) sağlanan işaretçi. |
|
Kaynak yayınları ait. |
|
İki değiştirir weak_ptr nesneler. |
|
Sayıları sayısı belirlenen shared_ptr nesneler. |
İşleçler
Değiştirir Kaynak ait. |
Gereksinimler
Başlık: <memory>
Ad alanı: std