Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Funktionen überladen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Verwendung von verschiedenen Parametern dient dazu, Funktionen mit identischen Namen mehrfach zu definieren. Der Compiler sucht in diesem Fall die passende automatisch aus.
03:36

Transkript

In dieser Lektion möchte ich Ihnen das Überladen von Funktionen in C++ vorstellen. Das Überladen von Funktionen bedeutet, dass Sie eine Funktion öfters definieren dürfen. Die Funktionen müssen sich nur in ihren Parametern unterscheiden. Bei Überladen von Funktionen werden die Rückgabetypen der Funktionen nicht berücksichtigt. Hier habe ich ein kleines Beispiel. Ich habe zwei Funktionen min, die sind überladen. Die erste Funktion nimmt zwei const char Pointer an und gibt ein const char Pointer zurück und vergleicht mit dem Funktionskörper, welche der beiden const char Pointer bzw. welche der beiden Strings kleiner ist. Die zweite Funktion nimmt zwei floats an und gibt ein float zurück und vergleicht, welche der zwei floats kleiner ist. Gibt diesen float zurück. Rufe ich nun die Funktion min mit zwei Strings auf, so bekomme ich den kleineren zurück. Rufe ich die Funktion min mit zwei floats auf, bekomme ich den kleineren float zurück. Entscheidend beim Funktionsüberladen ist es, dass der Compiler entscheidet, welche Funktion verwendet wird. Dazu gibt es ein paar Regeln, die man im Kopf behalten sollte. Die erste Regel ist, wenn der Compiler die Funktionsargumente sich anschaut und sich überlegt, welche Funktion er tatsächlich verwenden will, führt er diese Regeln aus. Zuerst sucht er die Funktion, deren Paramater genau zu den Argumenten passt. Passt es nicht, wendet er die Regel zwei an. Die heißt, er wendet Typpromotion an. Was heißt das? Boolesche Werte, Zeichen, kleine Integer werden zu int vergrößert. floats werden zu doubles. Wenn es immer noch nicht klappt, wendet er Konvertierungen an. Dabei können implizite Konvertierungen vom Compiler angewandt werden, die er sozusagen selber macht oder auch benutzerdefinierte für eigene Datentypen. Dazu gelten noch die weiteren Regeln, dass der Compiler mit den Parametern const- und volatile-Qualifier ignoriert. Er ignoriert auch Referenztypen. Alles, was ich in der Theorie gezeigt habe, will ich Ihnen nun in der Praxis zeigen. Dazu ein kleines Programm. Die Funktionen sollten bekannt sein. Das ist eine Funktion, die ich gerade erklärt habe, min in zwei Formen. Die Funktion min ist also überladen und jetzt rufe ich sie mit verschiedenen Argumenten auf. Erst rufe ich sie mit abc, def auf, also genauso wie ich sie definiert habe. Das heißt, in diesem Fall ist es relativ naheliegend, dass der Compiler die Form hier oben verwendet, und dementsprechend gibt er abc aus. Rufe ich sie mit floats auf, wird natürlich auch die Funktion verwendet, die für floats überladen ist. Jetzt wird es aber schon kompliziert. Rufe ich sie mit integer auf, dann habe ich hier primär keine Funktion, die passt. Also führt er eine Konvertierung durch int nach float. Rufe ich sie mit double auf, 4.5 ist ein double und kein float, konvertiert er den double nach int und alles ist gut. So kann er auch rausfinden, dass das minimum von 4.5 und 1.23, 1.23 ist. In dieser Lektion habe ich Ihnen das Überladen von Funktionen in C++ vorgestellt. Beim Überladen von C++ ist das Entscheidende, dass der Compiler entscheidet, welche Funktion er verwenden will. Dabei wendet er Regeln an. Im Wesentlichen sind es drei Regeln. Als erstes schaut er, ob die Argumente mit den Parametern der Funktion zusammenpassen. Ist das nicht der Fall, schaut er als zweites, ob er Typpromotionen ausführen kann, damit die Argumente auf die Parameter passen. Ist das nicht möglich, wendet er als dritte Regel Typkonvertierungen an. Das können implizite Typkonvertierungen sein oder das können auch benutzerdefinierte Typkonvertierungen sein, falls Sie benutzerdefinierte Typen verwenden.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!