Implementierung der dynamischen Polymorphie in C++

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab implementieren wir das Konzept der Polymorphie in C++. Polymorphie ist ein Konzept der objektorientierten Programmierung, bei dem eine einzelne Funktion auf verschiedene Weise verwendet werden kann. Es gibt zwei Arten von Polymorphie: Compile-Time-Polymorphie oder statische Polymorphie und Laufzeit-Polymorphie oder dynamische Polymorphie. In diesem Lab konzentrieren wir uns auf die Laufzeit- oder dynamische Polymorphie.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/OOPGroup -.-> cpp/polymorphism("Polymorphism") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/class_methods -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/inheritance -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/polymorphism -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/output -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/files -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} cpp/code_formatting -.-> lab-96154{{"Implementierung der dynamischen Polymorphie in C++"}} end

Erstellen einer neuen main.cpp-Datei

Zunächst erstellen wir in das Verzeichnis ~/project eine neue C++-Datei namens main.cpp:

$ cd ~/project
$ touch main.cpp

Code hinzufügen, um die Polymorphie zu implementieren

In diesem Schritt erstellen wir eine Klasse namens Shape. Die Klasse Shape wird eine virtuelle Funktion namens area() haben. Anschließend erstellen wir zwei Klassen Rectangle und Triangle, die von der Klasse Shape erben und die virtuelle area()-Funktion überschreiben werden. Nachdem die Klassen erstellt wurden, erstellen wir ein Array von Objekten der Klasse Shape und durchlaufen dann das Array, um die area()-Funktion jedes Objekts aufzurufen.

#include <iostream>
using namespace std;

class Shape {
    public:
        virtual float area() {
            return 0;
        }
};

class Rectangle: public Shape {
    public:
        float area() {
            cout << "Rectangle class area()" << endl;
            return 0;
        }
};

class Triangle: public Shape {
    public:
        float area() {
            cout << "Triangle class area()" << endl;
            return 0;
        }
};

int main() {
    Shape *shape;
    Rectangle rec;
    Triangle tri;

    shape = &rec;
    shape->area();

    shape = &tri;
    shape->area();

    return 0;
}

Code kompilieren und ausführen

In diesem Schritt werden wir den Code mit den folgenden Befehlen kompilieren und ausführen:

$ g++ main.cpp -o main
$./main

Die Ausgabe des obigen Programms wird wie folgt sein:

Rectangle class area()
Triangle class area()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man das Konzept der Polymorphie in C++ implementiert. Wir haben eine Klasse mit einer virtuellen Funktion namens Shape erstellt. Anschließend haben wir zwei Klassen Rectangle und Triangle erstellt, die von der Klasse Shape geerbt haben und die virtuelle Funktion area() überschrieben haben. Schließlich haben wir Objekte der Klassen Rectangle und Triangle erstellt und die area()-Funktion über das Objekt der Basisklasse Shape aufgerufen, was zum Aufruf der jeweiligen Klassen führte.