«smart-pointers» etiketlenmiş sorular

Otomatik çöp toplama veya sınır denetimi gibi ek özellikler sağlarken bir işaretçiyi simüle eden soyut bir veri türü


2
Akıllı işaretçiler (paylaşılan_tr) referans veya değere göre nasıl döndürülür?
Diyelim ki a döndüren bir yöntemi olan bir sınıfım var shared_ptr. Referans veya değer ile iade etmenin olası faydaları ve dezavantajları nelerdir? Olası iki ipucu: Erken nesne imhası. shared_ptrBy (const) referansını döndürürsem, referans sayacı artırılmaz, bu nedenle nesnenin başka bir bağlamda kapsam dışına çıktığında (örneğin başka bir iş parçacığı) silinmesi …


4
Shared_ptr <Derived> shared_ptr <Base> olarak iletiliyor
shared_ptrTüretilmiş türden a'yı shared_ptrtemel türden alan bir işleve geçirmenin en iyi yöntemi nedir ? shared_ptrGereksiz bir kopyadan kaçınmak için genellikle s'yi referans olarak geçiririm: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); ama böyle bir şey yapmaya çalışırsam bu işe yaramaz int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); kullanabilirim foo(dynamic_pointer_cast&lt;Base, Derived&gt;(bar)); …

3
shared_ptr büyü :)
Bay Lidström ve ben tartıştık :) Bay Lidström'ün iddiası, bir yapının Base'in shared_ptr&lt;Base&gt; p(new Derived);sanal bir yıkıcıya sahip olmasını gerektirmediğidir: Armen Tsirunyan : "Gerçekten Will Shared_ptr ? Eğer etkileyen nasıl yansıdığını gösteren bu durumda lütfen Could doğru temizlemek" Daniel Lidström : " shared_ptr , Concrete örneğini silmek için kendi yıkıcısını …

5
Std :: shared_ptr'nin atomik olmayan bir eşdeğeri var mı? Ve neden <memory> 'de bir tane yok?
Bu biraz iki bölümden oluşan bir sorudur, tümü aşağıdakilerin atomikliği ile ilgilidir std::shared_ptr: 1. Söyleyebileceğim kadarıyla atomik std::shared_ptrolan tek akıllı işaretçi &lt;memory&gt;. std::shared_ptrKullanılabilirin atomik olmayan bir sürümü olup olmadığını merak ediyorum (içinde hiçbir şey göremiyorum &lt;memory&gt;, bu yüzden Boost'takiler gibi standart dışındaki önerilere de açığım). boost::shared_ptrAtomik olduğunu da biliyorum ( …

7
Shared_ptr kullanma örneği?
Merhaba bugün aynı vektör dizisine farklı türden nesneler nasıl eklenir hakkında bir soru sordum ve bu sorudaki kodum gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual void Run() { //A virtual …

2
zayıf_ptr sıfırlama paylaşılan_ptr'u etkiler mi?
Kullanmaya pek alışkın weak_ptrdeğilim ve oldukça kafa karıştırıcı bir durumla karşı karşıyayım. Ben kullanıyorum Intel XE 2019 Besteci güncelleme 5 ( paket 2019.5.281 ile combinaison olarak) ver Visual Studio 2019. 16.2.5 . 64 bit derliyorum. Standart C ++ 17 kullanıyorum . İşte benim spike çözümü için kod: #include &lt;memory&gt; #include …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.