Heim > Artikel > Backend-Entwicklung > Wie deklariere und rufe ich virtuelle Funktionen in C++ auf?
Virtuelle Funktion ist ein Polymorphismusmechanismus, der es einer abgeleiteten Klasse ermöglicht, die Mitgliedsfunktion ihrer Basisklasse zu überschreiben: Deklaration: Fügen Sie das Schlüsselwort virtual vor dem Funktionsnamen hinzu. Aufruf: Mithilfe eines Basisklassenzeigers oder einer Referenz bindet der Compiler dynamisch an die entsprechende Implementierung der abgeleiteten Klasse. Praktischer Fall: Durch die Definition der Basisklasse Shape und ihrer abgeleiteten Klassen Rechteck und Kreis wird die Anwendung virtueller Funktionen im Polymorphismus demonstriert, um Flächen zu berechnen und Formen zu zeichnen.
Virtuelle Funktionen in C++
Virtuelle Funktionen sind ein Polymorphismusmechanismus, der es einer abgeleiteten Klasse ermöglicht, die Mitgliedsfunktionen ihrer Basisklasse zu überschreiben. Dies ermöglicht es Programmierern, allgemeines Verhalten in einer Basisklasse zu definieren und gleichzeitig abgeleiteten Klassen die Bereitstellung einer instanzspezifischen Implementierung dieses Verhaltens zu ermöglichen.
Deklarieren einer virtuellen Funktion
Um eine virtuelle Funktion zu deklarieren, platzieren Sie das Schlüsselwort virtual
am Anfang des Funktionsnamens. Zum Beispiel:
class Base { public: virtual void print() const; };
Eine virtuelle Funktion aufrufen
Eine virtuelle Funktion aufrufen, indem ein Basisklassenzeiger oder eine Referenz verwendet wird. Der Compiler bindet dynamisch an die entsprechende Implementierung der abgeleiteten Klasse. Zum Beispiel:
void doSomething(Base* base) { base->print(); }
Praktischer Fall
Das Folgende ist ein Beispiel für die Verwendung virtueller Funktionen:
#include <iostream> class Shape { public: virtual double area() const = 0; virtual void draw() const = 0; }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width_(width), height_(height) {} double area() const override { return width_ * height_; } void draw() const override { std::cout << "Drawing rectangle" << std::endl; } private: double width_; double height_; }; class Circle : public Shape { public: Circle(double radius) : radius_(radius) {} double area() const override { return 3.14 * radius_ * radius_; } void draw() const override { std::cout << "Drawing circle" << std::endl; } private: double radius_; }; int main() { Shape* rectangle = new Rectangle(5, 10); Shape* circle = new Circle(5); std::cout << rectangle->area() << std::endl; // Output: 50 std::cout << circle->area() << std::endl; // Output: 78.5 rectangle->draw(); // Output: Drawing rectangle circle->draw(); // Output: Drawing circle return 0; }
Das obige ist der detaillierte Inhalt vonWie deklariere und rufe ich virtuelle Funktionen in C++ auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!