Heim > Backend-Entwicklung > C++ > Wie implementiere ich Schnittstellen in C mithilfe abstrakter Basisklassen und virtueller Destruktoren?

Wie implementiere ich Schnittstellen in C mithilfe abstrakter Basisklassen und virtueller Destruktoren?

Patricia Arquette
Freigeben: 2024-12-21 18:40:11
Original
599 Leute haben es durchsucht

How Do I Implement Interfaces in C   Using Abstract Base Classes and Virtual Destructors?

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
    }
};
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage