ich eine Interface-Klasse haben, aber ich möchte, dass alle abgeleiteten Klassen, das virtuelle destructor implementieren:Die richtige Platzierung für die Standard rein virtuellen Destruktor in C++ 11
// Interface.h
class Interface {
virtual ~Interface() = 0;
};
Interface::~Interface() = default;
Das Problem ist, dass in diesem Fall habe ich eine Linker-Fehler wegen doppelter Symbole.
Ich kann die Definition in .cpp
Datei platzieren, aber ich würde gerne wissen, ob es elegantere Lösung gibt?
Vielleicht 'Inline-Schnittstelle :: ~ Interface() = Standard;'? –
Funktion (Destruktor) kann nicht abstrakt sein und gleichzeitig Implementierung (Standard) haben. –
@AndrewKashpur, ja kann es: http://StackOverflow.com/Questions/37777606/C11-interface-pure-virtual-Destructor – Alex