Virtuelle vs. rein virtuelle Funktionen
In der objektorientierten Programmierung sind virtuelle Funktionen und rein virtuelle Funktionen wesentliche Konzepte für das Verständnis von Polymorphismus.
Was ist eine virtuelle Funktion?
Eine virtuelle Funktion ist vererbbar und überschreibbare Funktion in einer Basisklasse, die einen dynamischen Versand ermöglicht. Wenn eine virtuelle Funktion für ein Objekt aufgerufen wird, bestimmt das Laufzeitsystem die tatsächlich auszuführende Funktionsimplementierung basierend auf dem Typ des Objekts.
Beispiel:
class Base { public: virtual void foo() { std::cout << "Base::foo()" << std::endl; } }; class Derived : public Base { public: void foo() override { std::cout << "Derived::foo()" << std::endl; } };
In In diesem Beispiel implementieren sowohl die Basis- als auch die abgeleitete Klasse die Funktion foo(). Wenn foo() für ein abgeleitetes Objekt aufgerufen wird, führt es die überschriebene Version aus, die „Derived::foo()“ ausgibt.
Was ist eine rein virtuelle Funktion?
Eine rein virtuelle Funktion, auch abstrakte Funktion genannt, ist eine virtuelle Funktion, die nicht in der Basisklasse definiert ist. Es dient als Platzhalter und erfordert abgeleitete Klassen, um es zu implementieren.
Beispiel:
class Base { public: virtual void foo() = 0; // pure virtual function };
Dieses Beispiel deklariert foo() als rein virtuelle Funktion in der Base Klasse. Abgeleitete Klassen müssen diese Funktion implementieren, um eine Definition bereitzustellen. Andernfalls wird die abgeleitete Klasse abstrakt und kann nicht instanziiert werden.
Unterschied zwischen virtuellen und rein virtuellen Funktionen
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen virtuellen und rein virtuellen Funktionen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!