Heim >Backend-Entwicklung >C++ >Wie definiere und implementiert man Schnittstellen in C?
Ursprüngliche Frage: Wie definiere ich eine Klasse, die eine Schnittstelle darstellt?
Erweiterte Antwort: Eine Schnittstelle in C ist tatsächlich eine abstrakte Basisklasse. Es gibt jedoch eine erwägenswerte Ausnahme.
Um eine ordnungsgemäße Eigentumsübertragung sicherzustellen, ohne die konkrete abgeleitete Klasse preiszugeben, wird empfohlen, einen virtuellen Destruktor in die Schnittstelle aufzunehmen. Dieser Destruktor erfordert keine Implementierung, da die Schnittstelle keine spezifischen Mitglieder hat.
Beispielcode:
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; }; class Parent { public: virtual ~Parent(); }; class Child : public Parent, public IDemo { public: virtual void OverrideMe() override { // Custom implementation } };
In diesem Beispiel sowohl Parent als auch Child von IDemo erben, und Child stellt eine konkrete Implementierung für die OverrideMe-Funktion bereit.
Beachten Sie, dass es zwar ungewöhnlich erscheinen mag, eine virtuelle Funktion als zu definieren Inline gilt diese Vorgehensweise im Allgemeinen als sicher und vorteilhaft für die Optimierung.
Das obige ist der detaillierte Inhalt vonWie definiere und implementiert man Schnittstellen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!