Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in Polymorphismus | Überblick Über Polymorphismus
C++ OOP
course content

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Kapselungsübersicht
4. Überblick Über die Vererbung
5. Überblick Über Polymorphismus

book
Einführung in Polymorphismus

Arten von Polymorphismus

Es gibt zwei Hauptarten von Polymorphismus: Kompilierungszeit (statisch) und Laufzeit (dynamisch). Das Verständnis der Nuancen und Anwendungen jeder Art von Polymorphismus ist entscheidend für das Schreiben robuster und anpassungsfähiger Code.

  • Kompilierungszeit-Polymorphismus: Dies wird durch Funktionsüberladung und Operatorüberladung erreicht, wobei die auszuführende Funktion während der Kompilierung bestimmt wird.
  • Laufzeit-Polymorphismus: Dies wird hauptsächlich durch die Verwendung von virtuellen Funktionen erreicht, die es ermöglichen, eine Funktion in abgeleiteten Klassen zu überschreiben und ihr Verhalten zur Laufzeit zu bestimmen.

Hinweis

In diesem Kurs werden wir tief in den Laufzeit-Polymorphismus eintauchen, da er eines der grundlegenden Paradigmen der objektorientierten Programmierung darstellt. Zusätzlich werden wir den Kompilierungszeit-Polymorphismus im Kontext von Klassen ansprechen.

Anwendung und Notwendigkeit von Polymorphismus

Ein hervorragender Weg, Polymorphismus zu verstehen, ist durch eine Analogie aus der realen Welt. Betrachten Sie eine grafische Benutzeroberfläche mit einem Button. Dieser Button kann in verschiedenen Kontexten verwendet werden: als Upload-Button, Reset-Button oder Abbrechen-Button.

Jeder Knopf führt eine unterschiedliche Aktion aus, wenn er angeklickt wird, aber alle dienen im Wesentlichen als Knöpfe. Schauen Sie sich die theoretische Implementierung dieses Konzepts an.

h

UploadButton

h

ResetButton

h

CancelButton

copy
1234
class UploadButton : public Button { public: void onClick() { std::cout << "Upload" << std::endl; } };

Da alle Schaltflächen die gleiche onClick()-Methode mit unterschiedlichen Implementierungen teilen, lassen Sie uns tiefer eintauchen. Was, wenn wir eine Funktion benötigen, die ein Objekt, das zu einer der SchaltflächenKlassen gehört, als Parameter akzeptiert?

cpp

main

copy
1234567891011
void user_clicked_upload_button(const UploadButton& btn) { btn.onClick(); } void user_clicked_reset_button(const ResetButton& btn) { btn.onClick(); } void user_clicked_cancel_button(const CancelButton& btn) { btn.onClick(); }

Wie Sie sehen können, kann das manuelle Erstellen separater Funktionen für jede Schaltfläche Komplexität erzeugen, insbesondere bei Änderungen, da jede Funktion individuell bearbeitet werden muss, wenn Probleme auftreten. Außerdem sind in der Hauptfunktion zusätzliche Überprüfungen erforderlich, um zu bestimmen, welche Funktion aufgerufen werden soll. Polymorphismus ermöglicht eine einfache Lösung dieser Probleme.

Was ist die wörtliche Bedeutung des Begriffs Polymorphismus?

Was ist die wörtliche Bedeutung des Begriffs Polymorphismus?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1
We're sorry to hear that something went wrong. What happened?
some-alt