Einführung in Funktionen in C++: Definieren, Aufrufen, Parameter
Lernen Sie Funktionen in C++ mit Definition, Aufruf und Parametern für modulare und wiederverwendbare Programme.
In C++ sind Funktionen wiederverwendbare Codeblöcke, die eine bestimmte Aufgabe ausführen. Sie sorgen dafür, dass große Programme strukturiert, lesbar und wartbar bleiben. In diesem Artikel lernen wir Schritt für Schritt, wie man Funktionen definiert, aufruft, Parameter verwendet und Rückgabewerte verarbeitet.
1. Was ist eine Funktion?
Eine Funktion ist ein unabhängiger Codeblock, der eine Operation ausführt und optional einen Wert zurückgibt. Der allgemeine Aufbau einer Funktion in C++ sieht wie folgt aus:
rückgabe_typ funktionsName(parameter) {
// Funktionskörper
}
Beispiel:
int Addiere(int a, int b) {
return a + b;
}
Diese Funktion nimmt zwei Ganzzahlen entgegen und gibt ihre Summe zurück.
2. Die 4 Grundkomponenten einer Funktion
| Komponente | Beschreibung | Beispiel |
|---|---|---|
| Rückgabetyp | Der Datentyp, den die Funktion zurückgibt | int |
| Funktionsname | Der Name, mit dem die Funktion aufgerufen wird | Addiere |
| Parameterliste | Die Werte, die die Funktion entgegennimmt | (int a, int b) |
| Körper | Der Code, der innerhalb der Funktion ausgeführt wird | { return a + b; } |
3. Definition und Aufruf einer Funktion
Funktionen können innerhalb oder außerhalb der main()-Funktion aufgerufen werden.
Normalerweise werden sie außerhalb definiert und innerhalb von main() aufgerufen.
#include <iostream>
using namespace std;
int Addiere(int x, int y) {
return x + y;
}
int main() {
int ergebnis = Addiere(5, 8);
cout << "Summe: " << ergebnis << endl;
return 0;
}
Beim Aufruf der Funktion werden die Parameter in der angegebenen Reihenfolge übergeben.
Im Aufruf Addiere(5, 8) gilt x=5 und y=8.
4. Rückgabetyp (return)
Eine Funktion kann ein Ergebnis an die aufrufende Stelle zurückgeben.
Dieser Wert wird mit der return-Anweisung angegeben.
double Durchschnitt(int a, int b, int c) {
return (a + b + c) / 3.0;
}
int main() {
cout << "Durchschnitt: " << Durchschnitt(70, 85, 90) << endl;
}
Wenn die Funktion keinen Wert zurückgeben soll, wird sie mit dem Typ void deklariert.
void NachrichtAusgeben() {
cout << "Hallo, C++!" << endl;
}
5. Verwendung von Parametern
Funktionen können Parameter verwenden, um dynamische Operationen durchzuführen. Parameter können per Wert oder per Referenz übergeben werden.
Wertübergabe (Pass by Value)
Eine Kopie der Variablen wird an die Funktion übergeben. Die ursprüngliche Variable bleibt unverändert.
void WertÄndern(int x) {
x = x + 10;
}
int main() {
int zahl = 5;
WertÄndern(zahl);
cout << zahl; // 5
}
Referenzübergabe (Pass by Reference)
Mit dem &-Symbol wird die Variable selbst an die Funktion übergeben.
Änderungen innerhalb der Funktion wirken sich auf die Originalvariable aus.
void WertÄndern(int &x) {
x = x + 10;
}
int main() {
int zahl = 5;
WertÄndern(zahl);
cout << zahl; // 15
}
6. Standardparameter (Default Arguments)
In C++ können Funktionen Standardwerte für Parameter haben. Wenn beim Aufruf kein Wert übergeben wird, wird der Standardwert verwendet.
void Begrüßen(string name = "Besucher") {
cout << "Hallo, " << name << "!" << endl;
}
int main() {
Begrüßen(); // Hallo, Besucher!
Begrüßen("Anna"); // Hallo, Anna!
}
7. Funktionsdeklaration (Prototyp)
Wenn eine Funktion aufgerufen wird, bevor der Compiler ihre Definition kennt, tritt ein Fehler auf. In diesem Fall wird die Funktionssignatur (Prototyp) oben deklariert.
// Deklaration
int Addiere(int a, int b);
int main() {
cout << Addiere(3, 4);
}
// Definition
int Addiere(int a, int b) {
return a + b;
}
8. Funktionsüberladung (Function Overloading)
In C++ können mehrere Funktionen denselben Namen haben, solange sich die Anzahl oder der Typ der Parameter unterscheidet.
int Addiere(int a, int b) {
return a + b;
}
double Addiere(double a, double b) {
return a + b;
}
int main() {
cout << Addiere(3, 4) << endl; // int-Version
cout << Addiere(2.5, 4.1) << endl; // double-Version
}
9. Beispiel: Geometrische Berechnungen
Im folgenden Beispiel werden mehrere Funktionen verwendet, um verschiedene Arten von Berechnungen durchzuführen.
#include <iostream>
using namespace std;
double QuadratFläche(double seite) {
return seite * seite;
}
double RechteckFläche(double breite, double höhe) {
return breite * höhe;
}
int main() {
cout << "Quadratfläche: " << QuadratFläche(4) << endl;
cout << "Rechteckfläche: " << RechteckFläche(3, 5) << endl;
return 0;
}
Dieses Beispiel zeigt, wie mehrere Funktionen innerhalb desselben Programms definiert und aufgerufen werden können.
10. TL;DR
- Funktionen machen wiederkehrende Aufgaben modular.
returngibt einen Wert zurück;voidgibt keinen zurück.- Parameter können per Wert oder per Referenz übergeben werden.
- Standardparameter ermöglichen flexible Funktionsaufrufe.
- Mehrere Funktionen mit demselben Namen können existieren (Überladung).
- Alle Beispiele können in Visual Studio 2022 oder GCC 11+ ausgeführt werden.