«destructor» etiketlenmiş sorular

21
Java için bir yıkıcı var mı?
Java için bir yıkıcı var mı? Bununla ilgili herhangi bir belge bulamıyorum. Yoksa, aynı etkiyi nasıl elde edebilirim? Sorumu daha spesifik hale getirmek için, verilerle ilgilenen bir uygulama yazıyorum ve spesifikasyon, uygulamayı orijinal yeni başlatılan durumuna geri getiren bir 'sıfırlama' düğmesinin olması gerektiğini söylüyor. Ancak, uygulama kapatılmadıkça veya sıfırlama düğmesine …

9
Bir Python nesnesini nasıl doğru bir şekilde temizlerim?
class Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.unlink(file) __del__(self)Yukarıdaki bir AttributeError istisnası ile başarısız olur. Python__del__() çağrıldığında "küresel değişkenler" (bu bağlamda üye verileri?) Varlığını garanti etmediğini biliyorum . Durum böyleyse ve istisnanın nedeni buysa, nesnenin düzgün şekilde yok edildiğinden nasıl emin olabilirim?
463 python  destructor 

7
Temel sanal yıkıcıyı açıkça çağırmam gerekir mi?
C ++ (sanal bir yıkıcı ile) bir sınıfı geçersiz kılarken yıkıcı sınıfı miras sınıfında tekrar sanal olarak uyguluyorum, ama temel yıkıcı çağırmak gerekir mi? Eğer öyleyse bunun böyle bir şey hayal ediyorum ... MyChildClass::~MyChildClass() // virtual in header { // Call to base destructor... this->MyBaseClass::~MyBaseClass(); // Some destructing specific to …
351 c++  destructor 

16
bir yıkıcıdan istisnalar atmak
Çoğu insan hiçbir zaman bir yıkıcıdan bir istisna atmaz der - bunu yapmak tanımsız davranışa neden olur. Stroustrup, "vektör yıkıcı her bir eleman için yıkıcıyı açıkça çağırıyor." "bir eleman yıkıcı fırlatılırsa garanti vermez" (Ek E3.2'den) . Bu makale aksini söylüyor gibi - yıkıcıların aşağı yukarı iyi. Benim sorum şu - …



11
Bir alt sınıfa işaretçi silmek temel sınıf yıkıcısını çağırır mı?
Ben bir class Aalanlarından biri için yığın bellek ayırma kullanır. Sınıf A başlatılır ve başka bir sınıfta işaretçi alanı olarak depolanır ( class B. B sınıfı bir nesneyle işimi bitirdiğimde delete, yıkıcı olarak adlandırdığımı farz ediyorum ... Ama bu A sınıfının yıkıcısı mı diyor? Düzenle: Cevaplardan, bunu alıyorum (yanlışsa lütfen …


12
Neden C ++ 'da saf bir sanal yıkıcıya ihtiyacımız var?
Sanal bir yıkıcıya olan ihtiyacı anlıyorum. Ama neden saf bir sanal yıkıcıya ihtiyacımız var? C ++ makalelerinden birinde yazar, bir sınıf özeti yapmak istediğimizde saf sanal yıkıcı kullandığımızdan bahsetmiştir. Ancak üye işlevlerinden herhangi birini saf sanal olarak yaparak sınıf özeti yapabiliriz. Yani sorularım Bir yıkıcıyı ne zaman gerçekten sanal hale …

6
Bir nesne nasıl yok edilir?
Bildiğim kadarıyla (ki bu çok az) iki yol var: $var = new object() Sonra: // Method 1: Set to null $var = null; // Method 2: Unset unset($var); Başka daha iyi bir yöntem mi? Burada saçlarımı mı bölüyorum?

10
C ++ yıkıcı ne zaman çağrılır?
Temel Soru: Bir program ne zaman C ++ 'da bir sınıf' yıkıcı yöntemini çağırır? Bir nesne kapsam dışına çıktığında veya bir nesneye maruz kaldığında çağrıldığı söylendi.delete Daha spesifik sorular: 1) Nesne bir işaretçi aracılığıyla oluşturulmuşsa ve bu işaretçi daha sonra silinmişse veya işaret etmesi için yeni bir adres verilmişse, işaret …
118 c++  destructor 

7
C # 'da IDisposable kullanmak ile bir yıkıcı kullanmak arasındaki fark nedir?
IDispose'u bir yıkıcı yerine bir sınıf üzerinde ne zaman uygularım? Bu makaleyi okudum ama yine de asıl noktayı kaçırıyorum. Benim varsayımım, bir nesneye IDispose uygularsam, çöp toplayıcının bunu yapmasını beklemek yerine onu açıkça "yok edebilirim". Bu doğru mu? Bu, bir nesnede her zaman açıkça Dispose çağırmam gerektiği anlamına mı geliyor? …
101 c#  .net  dispose  destructor 

3
C # 'da bir sınıftaki bir yıkıcı ile Finalize yöntemi arasındaki fark nedir?
Bir sınıftaki bir yıkıcı ile Finalize yöntemi arasında varsa, fark nedir? Geçenlerde Visual Studio 2008'in Finalize yöntemiyle eşanlamlı bir yıkıcı olarak gördüğünü keşfettim, bu da Visual Studio'nun bir sınıfta her iki yöntemi de aynı anda tanımlamanıza izin vermeyeceği anlamına geliyor. Örneğin, aşağıdaki kod parçası: class TestFinalize { ~TestFinalize() { Finalize(); …

2
GNU GCC (g ++): Neden birden çok yönlendirici üretiyor?
Geliştirme ortamı: GNU GCC (g ++) 4.1.2 Birim testinde 'kod kapsamını - özellikle işlev kapsamını' nasıl artıracağımı araştırmaya çalışırken, bazı sınıf dtorlarının birden çok kez üretildiğini buldum. Bazılarınızın neden olduğuna dair bir fikri var mı? Aşağıdaki kodu kullanarak yukarıda bahsettiğim şeyi denedim ve gözlemledim. "Test.h" içinde class BaseClass { public: …
91 c++  g++  destructor 

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<Base> 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ı …

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.