Heim >Backend-Entwicklung >C++ >Detaillierte Erläuterung der C++-Funktionsvererbung: Wie definiere und verwende ich abstrakte Basisklassen?
Funktionsvererbung ermöglicht abgeleiteten Klassen die Wiederverwendung der Funktionsdefinitionen der Basisklasse, was durch die folgenden Schritte erreicht wird: Definieren Sie eine abstrakte Basisklasse, einschließlich rein virtueller Funktionen. Verwenden Sie das Schlüsselwort override in der abgeleiteten Klasse, um die Funktionen der Basisklasse zu erben und zu implementieren. Praktischer Fall: Erstellen Sie eine abstrakte Basisklasse „Shape“ und leiten Sie die Klassen „Circle“ und „Rectangle“ ab, um die Flächen verschiedener Formen zu berechnen.
Detaillierte Erklärung der C++-Funktionsvererbung: Definieren und Verwenden abstrakter Basisklassen
Was ist Funktionsvererbung?
Funktionsvererbung ist eine C++-Funktion, die es abgeleiteten Klassen ermöglicht, die Funktionsdefinitionen einer Basisklasse zu erben und so die Funktionen der Basisklasse in Unterklassen wiederzuverwenden.
Abstrakte Basisklasse definieren
Eine abstrakte Basisklasse ist eine Basisklasse, die nicht zur Instanziierung gedacht ist, sondern nur als Basisklasse für andere Klassen dient. Es enthält rein virtuelle Funktionen (also Funktionen ohne Funktionskörper), die in abgeleiteten Klassen überschrieben werden müssen. Um eine abstrakte Basisklasse zu deklarieren, können Sie virtual
und = 0
verwenden, zum Beispiel: virtual
和 = 0
,例如:
class Shape { public: virtual double area() const = 0; };
派生类中的函数继承
派生类可以继承抽象基类的函数定义,方法是使用 override
class Circle : public Shape { public: override double area() const { return M_PI * radius * radius; } private: double radius; };
Funktionsvererbung in abgeleiteten Klassen
Abgeleitete Klassen können abstrakte Basis erben Klassenfunktionsdefinition durch Verwendung des Schlüsselwortsoverride
und Bereitstellung einer Implementierung der Funktion. Zum Beispiel: #include <iostream> #include <cmath> using namespace std; class Shape { public: virtual double area() const = 0; }; class Circle : public Shape { public: Circle(double radius) : radius(radius) {} override double area() const { return M_PI * radius * radius; } private: double radius; }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width(width), height(height) {} override double area() const { return width * height; } private: double width; double height; }; int main() { Circle circle(5); cout << "Circle area: " << circle.area() << endl; Rectangle rectangle(3, 4); cout << "Rectangle area: " << rectangle.area() << endl; return 0; }
Praxisfall: Formflächenberechnung
Nehmen wir die Berechnung der Formfläche als Beispiel für eine praktische Demonstration. Wir erstellen eine abstrakte Basisklasse „Form“ und erstellen abgeleitete Klassen „Kreis“ und „Rechteck“, um die Fläche von Kreisen und Rechtecken zu berechnen: 🎜Circle area: 78.5398 Rectangle area: 12🎜🎜Ausgabe ausführen: 🎜🎜rrreee
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der C++-Funktionsvererbung: Wie definiere und verwende ich abstrakte Basisklassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!