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
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ı.
Bir URI, URL ve URN arasındaki fark ne...
Aramak ve uygulamak arasındaki fark ne...
@Staticmethod ve @Python classmethod a...
Match_parent ve fill_parent arasındaki...
Varchar ve nvarchar arasındaki fark ne...