
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!
Die Seitenzahl von Word beginnt auf der dritten Seite als 1 Tutorial
Drei häufig verwendete Kodierungsmethoden
Verwendung der Accept-Funktion
Welche Java-Workflow-Engines gibt es?
So binden Sie Daten in einer Dropdown-Liste
Was ist die C-Programmiersoftware?
Was ist CONNECTION_REFUSED
So lösen Sie 400 fehlerhafte Anfragen