Schnittstellen in C implementieren
Frage:
Wie kann ich eine Klasse erstellen, die eine Schnittstelle in C darstellt? ? Ist es einfach eine abstrakte Basisklasse?
Antwort:
Über das vom vorherigen Befragten eingeführte Konzept rein virtueller Methoden zur Definition einer Schnittstelle hinaus sollten Sie das Hinzufügen einer virtuellen in Betracht ziehen Destruktor für die Mischung. Dadurch können Sie den Besitz eines Zeigers an eine andere Partei weitergeben und gleichzeitig die zugrunde liegende konkrete abgeleitete Klasse verbergen. Obwohl es nicht intuitiv ist, ist es zulässig, eine Funktion sowohl als virtuell als auch als Inline zu deklarieren.
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; }; class Parent { public: virtual ~Parent(); }; class Child : public Parent, public IDemo { public: virtual void OverrideMe() { // Implementation details } };
Beachten Sie, dass ein expliziter Destruktorkörper optional ist. Einige Compiler haben Probleme mit der Optimierung leerer Destruktoren, daher ist es im Allgemeinen vorzuziehen, sich auf die Standardimplementierung zu verlassen.
Das obige ist der detaillierte Inhalt vonWie implementiere ich Schnittstellen in C mithilfe abstrakter Basisklassen und virtueller Destruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!