Gibt es jemals einen guten Grund für pas einen virtuellen Destruktor für eine Klasse deklarieren? Wann sollten Sie es ausdrücklich vermeiden, einen zu schreiben?
Polymorphe Verwendung bedeutet nicht polymorphe Löschung. Es gibt viele Anwendungsfälle, in denen eine Klasse zwar virtuelle Methoden, aber keinen virtuellen Destruktor hat. Betrachten Sie ein typisches statisch definiertes Dialogfeld in so ziemlich jedem GUI-Toolkit. Das Elternfenster wird die Kindobjekte zerstören, und es kennt den genauen Typ eines jeden, aber alle Kindfenster werden auch polymorph in einer beliebigen Anzahl von Orten verwendet, wie z.B. Treffertests, Zeichnen, Zugänglichkeits-APIs, die den Text für Text-to-Speech-Engines abrufen, usw.