SORU
18 EYLÜL 2014, PERŞEMBE


Boş ve boş bir std arasındaki fark nedir::shared_ptr C ?

cplusplus.com shared_ptr page bir arasında bir ayrım çağırıyorboşstd::shared_ptr ve birnullshared_ptr. cppreference.com page açıkça ayrım aramıyor, ama her ikisi de "boş" ve nullptr karşılaştırma std::shared_ptr davranış onun açıklamasını kullanır.

Boş ve 6 ** null arasında bir fark var mı? Herhangi bir kullanım karışık davranış gibi noktalardaki durum var mı? Boş olmayan bir boş 7 ** mantıklı mı? Hiç boş ama boş olmayan shared_ptr ile bitebileceğini normal kullanım (yani açıkça bir inşa etmedin) bir durum var mı?

Ve bu cevaplar varsa C 11 sürümü yerine Artırmak sürümünü kullanıyorsanız değişir?

CEVAP
18 EYLÜL 2014, PERŞEMBE


shared_ptr davranış garip bir köşe. Sana shared_ptr bunu yapmak için izin veren bir kurucusu vardırsahibibir şey vepuan içinbaşka bir şey:

template< class Y > 
shared_ptr( const shared_ptr<Y>& r, T *ptr );

shared_ptr Bu oluşturucu kullanılarak inşahisse sahipliğir amapuan içinptr (yani, get() operator->() arama ptr döner) puan ne olursa olsun. Bu ptr nesne r ' e ait bir sınıfın (örneğin, veri üyesi) puan durumlar için kullanışlıdır.

Bağlantılı sayfa bir şey sahibi olan shared_ptr bir çağrıboşve hiçbir şey için bu noktaları shared_ptr (get() == nullptr olan yani)null. (Boşstandart bu anlamda kullanılır;nulldeğil.) Null-ama-değil-boş shared_ptr gerçekleştirebilmesi ama çok faydalı olmayacak. Boş-ama-değil-boş shared_ptr aslında olmayan bir sahibi işaretçi, hangi olabilir bazı garip şeyler gibi passing a pointer to something allocated on the stack to a function expecting a shared_ptr (ama ben göstermez delme kim çizdiyse shared_ptr iç API ilk).

boost::shared_ptr diyorlar ki has this constructor dayumuşatma yapıcı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • Willie D.

    Willie D.

    16 Aralık 2006