In C++ ist es möglich, mehrere Funktionen mit dem gleichen Namen zu definieren, die sich aber in der Anzahl, den Datentypen oder beiden Parametern (auch Signatur genannt) unterscheiden. Dieser Vorgang wird „überladen“ genannt. Das ist sinnvoll, wenn diese Funktionen ähnliche Dinge tun. Beim Aufruf erkennt der Compiler an der Signatur welche Funktion gewählt werden soll.
int berechnung (float x); bool berechnung (float x);
führt zu einer Fehlermeldung.
Wie sinnvoll es ist Funktionen zu überladen wenn sie gleiche Aufgaben durchführen, zeigt das folgende kleine Programm:
[sc name=“adsense_InText_ad“]
Übung: Funktionen überladen
Programm: overload.cpp
#include <iostream> using namespace std; //Funktions-Prototyp: float berechnung (float); //Funktionen überladen durch unterschiedliche Signaturen float berechnung (float, float); float berechnung (char, float, float); int main () { float num, bereich; cout << "Eingabe in Meter: "; cin >> num; bereich = berechnung (num); cout << "Flaeche Kreis: " << bereich << " Quadratmeter" << endl; //Überladende Funktionen aufrufen bereich = berechnung (num, num); cout << "Flaeche Quadrat: " << bereich << " Quadratmeter" << endl; bereich = berechnung ('T', num, num); cout << "Flaeche Dreieck: " << bereich << " Quadratmeter" <<endl; return 0; } float berechnung (float durchmesser) { float radius = (durchmesser/2); return (3.141593 * (radius * radius)); } float berechnung (float breite, float hoehe) { return (breite * hoehe); } float berechnung (char buchstabe, float breite, float hoehe) { return ((breite/2) * hoehe); }
Speichern Sie das Programm, kompilieren Sie es anschließend und schauen Sie sich das Ergebnis an.
Dieser Artikel ist Teil unseres kostenlosen Workshops “C++ Programmieren lernen” – Geeignet für Einsteiger und Fortgeschrittene. Machen auch Sie mit und lernen Sie in 50 Artikeln, wie Sie Programme selbst schreiben!
Artikelbild: Fotolia / bramgino