Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man Polymorphismus- und Vererbungsfunktionen in C++?

Wie implementiert man Polymorphismus- und Vererbungsfunktionen in C++?

WBOY
WBOYOriginal
2023-08-27 14:39:22510Durchsuche

Wie implementiert man Polymorphismus- und Vererbungsfunktionen in C++?

Wie implementiert man Polymorphismus- und Vererbungsfunktionen in C++?

In C++ sind Polymorphismus und Vererbung zwei wichtige Funktionen, die die Lesbarkeit und Wiederverwendbarkeit von Code verbessern können. In diesem Artikel wird die Implementierung von Polymorphismus- und Vererbungsfunktionen in C++ vorgestellt und Codebeispiele bereitgestellt.

1. Vererbungsfunktionen

Vererbung ist eines der Grundkonzepte der objektorientierten Programmierung. Sie ermöglicht es uns, neue Klassen zu erstellen und Eigenschaften und Methoden von vorhandenen Klassen zu erben.

Verwenden Sie in C++ das Schlüsselwort „class“, um eine Klasse zu definieren und die Vererbung über den Operator „:“ zu implementieren. Beim Erstellen einer abgeleiteten Klasse können Sie zwischen öffentlicher Vererbung, privater Vererbung oder geschützter Vererbung wählen.

Codebeispiel:

#include <iostream>
using namespace std;

// 基类
class Shape {
public:
    virtual float getArea() = 0; // 纯虚函数
};

// 派生类
class Rectangle : public Shape {
public:
    float width;
    float height;
    
    float getArea() {
        return width * height;
    }
};

int main() {
    Rectangle rect;
    rect.width = 10;
    rect.height = 5;
    
    float area = rect.getArea();
    cout << "矩形的面积:" << area << endl;
    
    return 0;
}

Im obigen Code erstellen wir eine Basisklasse Shape, die eine rein virtuelle Funktion getArea() definiert. Anschließend haben wir eine abgeleitete Klasse „Rectangle“ erstellt, die die Klasse „Shape“ erbt und die Funktion „getArea()“ implementiert. In der Hauptfunktion erstellen wir ein Rechteckobjekt und berechnen die Fläche des Rechtecks.

2. Polymorphismus-Eigenschaften

Polymorphismus bezieht sich auf die unterschiedlichen Erscheinungsformen von Objekten. Dieselbe Funktion kann je nach Art verschiedener Objekte unterschiedliche Verhaltensweisen zeigen. In C++ wird Polymorphismus durch virtuelle Funktionen und Zeiger oder Verweise auf Basisklassen erreicht.

Virtuelle Funktionen müssen in der Basisklasse deklariert und in der abgeleiteten Klasse überschrieben werden. Wenn ein Basisklassenzeiger oder eine Referenz auf ein abgeleitetes Klassenobjekt zeigt, wird die Funktion in der abgeleiteten Klasse aufgerufen.

Codebeispiel:

#include <iostream>
using namespace std;

// 基类
class Shape {
public:
    virtual float getArea() = 0; // 纯虚函数
};

// 派生类1
class Rectangle : public Shape {
public:
    float width;
    float height;
    
    float getArea() {
        return width * height;
    }
};

// 派生类2
class Circle : public Shape {
public:
    float radius;
    
    float getArea() {
        return 3.14 * radius * radius;
    }
};

int main() {
    Rectangle rect;
    rect.width = 10;
    rect.height = 5;
    
    Circle circle;
    circle.radius = 4;
    
    Shape* shape1 = &rect; // 基类指针指向派生类对象
    Shape* shape2 = &circle; // 基类指针指向派生类对象
    
    float area1 = shape1->getArea();
    float area2 = shape2->getArea();
    
    cout << "矩形的面积:" << area1 << endl;
    cout << "圆的面积:" << area2 << endl;
    
    return 0;
}

Im obigen Code haben wir zwei abgeleitete Klassen erstellt, Rechteck und Kreis, die beide von der Basisklasse Shape erben und die Funktion getArea() implementieren. In der Hauptfunktion verwenden wir die Basisklassenzeiger „Shape1“ und „Shape2“, um auf die Objekte „Rechteck“ bzw. „Kreis“ zu zeigen, und rufen über sie die Funktion getArea() auf, um Polymorphismus zu erreichen.

Zusammenfassung:

Durch Vererbungsfunktionen können wir Klassen mit gemeinsamen Eigenschaften und Methoden in C++ erstellen und eine Wiederverwendung von Code erreichen. Durch die polymorphe Funktion können wir im Fall eines Basisklassenzeigers oder einer Referenz die entsprechende Funktion basierend auf dem Typ des tatsächlichen Objekts aufrufen. Dies verbessert die Flexibilität und Skalierbarkeit des Codes.

Das obige ist der detaillierte Inhalt vonWie implementiert man Polymorphismus- und Vererbungsfunktionen in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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