Als «destructor» getaggte Fragen

594
Gibt es einen Destruktor für Java?

Gibt es einen Destruktor für Java? Ich scheine keine Dokumentation dazu zu finden. Wenn nicht, wie kann ich den gleichen Effekt erzielen? Um meine Frage genauer zu formulieren, schreibe ich eine Anwendung, die sich mit Daten befasst, und die Spezifikation besagt, dass es eine Schaltfläche zum...

462
Wie bereinige ich ein Python-Objekt korrekt?

class Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.unlink(file) __del__(self)oben schlägt mit einer AttributeError-Ausnahme fehl. Ich verstehe, dass Python beim Aufrufen nicht die Existenz von "globalen Variablen" (Mitgliedsdaten in...

350
Muss ich den virtuellen Basiszerstörer explizit aufrufen?

Wenn ich eine Klasse in C ++ überschreibe (mit einem virtuellen Destruktor), implementiere ich den Destruktor erneut als virtuell für die erbende Klasse, aber muss ich den Basisdestruktor aufrufen? Wenn ja, stelle ich mir das so vor ... MyChildClass::~MyChildClass() // virtual in header { //...

257
Ausnahmen aus einem Destruktor werfen

Die meisten Leute sagen, wirf niemals eine Ausnahme aus einem Destruktor heraus - dies führt zu undefiniertem Verhalten. Stroustrup weist darauf hin, dass "der Vektordestruktor den Destruktor explizit für jedes Element aufruft. Dies impliziert, dass die Vektorzerstörung fehlschlägt, wenn ein...

117
Wann wird ein C ++ - Destruktor aufgerufen?

Grundlegende Frage: Wann ruft ein Programm die Destruktormethode einer Klasse in C ++ auf? Mir wurde gesagt, dass es immer dann aufgerufen wird, wenn ein Objekt den Gültigkeitsbereich verlässt oder einem Objekt ausgesetzt istdelete Spezifischere Fragen: 1) Wenn das Objekt über einen Zeiger...

89
GNU GCC (g ++): Warum werden mehrere Dtoren generiert?

Entwicklungsumgebung: GNU GCC (g ++) 4.1.2 Während ich versuche zu untersuchen, wie die Codeabdeckung - insbesondere die Funktionsabdeckung - beim Komponententest erhöht werden kann, habe ich festgestellt, dass ein Teil der Klasse dtor anscheinend mehrmals generiert wird. Haben einige von Ihnen...

88
shared_ptr magic :)

Herr Lidström und ich hatten einen Streit :) Die Behauptung von Herrn Lidström ist, dass für ein Konstrukt shared_ptr<Base> p(new Derived);Base keinen virtuellen Destruktor benötigt: Armen Tsirunyan : "Wirklich? Wird der shared_ptr korrekt bereinigt? Könnten Sie bitte in diesem Fall zeigen,...

77
Werden virtuelle Destruktoren vererbt?

Wenn ich eine Basisklasse mit einem virtuellen Destruktor habe. Hat eine abgeleitete Klasse auch einen virtuellen Destruktor zu deklarieren? class base { public: virtual ~base () {} }; class derived : base { public: virtual ~derived () {} // 1) ~derived () {} // 2) }; Konkrete...