C++ Funktionen mit Programmbeispielen

โšก Intelligente Zusammenfassung

Funktionen in C++ Zusammengehรถrige Anweisungen werden in wiederverwendbare, benannte Blรถcke gruppiert, die Eingaben entgegennehmen, verarbeiten und Ausgaben zurรผckgeben. Programme kombinieren integrierte Bibliotheksfunktionen mit benutzerdefinierten Funktionen, die jeweils deklariert, definiert und aufgerufen werden, um Code-Wiederholungen zu vermeiden.

  • ๐Ÿงฉ Was es ist: Eine Funktion gruppiert Anweisungen, die Parameter entgegennehmen, diese verarbeiten und einen Wert zurรผckgeben, und fรผhrt so eine gemeinsame Aufgabe von einem Block aus aus.
  • ๐Ÿ“š Integrierte Funktionen: Das C++ Die Standardbibliothek liefert fertige Funktionen wie sqrt(), die Sie direkt aufrufen kรถnnen, ohne sie selbst schreiben zu mรผssen.
  • ๏ธ Benutzerdefinierte Funktionen: Programmierer erstellen ihre eigenen Funktionen, benennen sie eindeutig und rufen diesen Code von jeder beliebigen Stelle im Programm auf.
  • ๐Ÿ“ Erklรคrung und Definition: Ein Prototyp deklariert den Rรผckgabetyp, den Namen und die Argumenttypen; die Definition liefert den Funktionskรถrper.
  • ๐Ÿ“ž Aufruf und Argumente: Beim Aufruf einer Funktion wird deren Rumpf ausgefรผhrt; die Argumente mรผssen in Anzahl und Typ mit den Parametern รผbereinstimmen, Standardwerte sind zulรคssig.
  • ๐Ÿค– KI-Unterstรผtzung: GitHub Copilot und รคhnliche Assistenten unterstรผtzen das Gerรผst. C++ Funktionssignaturen, Funktionskรถrper und Funktionsaufrufe aus einem kurzen Kommentar.

C++ Funktionen

Was ist eine Funktion in C++?

Eine Funktion in C++ bezieht sich auf eine Gruppe von Anweisungen, die Eingaben entgegennehmen, verarbeiten und eine Ausgabe zurรผckgeben. Die Idee hinter einer Funktion besteht darin, hรคufige Aufgaben zu kombinieren, die wiederholt ausgefรผhrt werden. Wenn Sie unterschiedliche Eingaben haben, schreiben Sie nicht erneut denselben Code. Sie rufen die Funktion einfach mit einem anderen Datensatz auf, den sogenannten Parametern.

. Der C++ Programm hat mindestens eine Funktion, die main()-Funktion. Sie kรถnnen Ihren Code in verschiedene Funktionen aufteilen. Diese Aufteilung sollte so erfolgen, dass jede Funktion eine bestimmte Aufgabe erfรผllt.

Es gibt viele integrierte Funktionen im C++ Standardbibliothek. Sie kรถnnen diese Funktionen innerhalb Ihres Programms aufrufen.

Warum Funktionen verwenden?

Mit der Nutzung von Funktionen sind zahlreiche Vorteile verbunden. Diese beinhalten:

  • Jede Funktion fรผgt zugehรถrigen Code zusammen. Dadurch wird es fรผr Programmierer einfacher, Code zu verstehen.
  • Funktionen erleichtern die Programmierung, indem sie Codewiederholungen eliminieren.
  • Funktionen erleichtern die Wiederverwendung von Code. Sie kรถnnen dieselbe Funktion aufrufen, um eine Aufgabe in verschiedenen Abschnitten des Programms oder sogar auรŸerhalb des Programms auszufรผhren.

Eingebaute Funktionen

In C++, Bibliotheksfunktionen sind integriert C++ Funktionen. Um diese Funktionen zu verwenden, rufen Sie sie einfach direkt auf. Sie mรผssen die Funktionen nicht selbst schreiben.

Beispiel 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Ausgang:

Ausgabe der C++ Beispiel fรผr die eingebaute sqrt()-Funktion

Hier ist ein Screenshot des Codes:

C++ Code, der die eingebaute sqrt()-Funktion von cmath aufruft.

Code Erlรคuterung:

  1. Fรผgen Sie die iostream-Header-Datei in unser Programm ein, um deren Funktionen zu nutzen.
  2. Binden Sie die cmath-Bibliothek ein, um ihre Funktionen zu nutzen. Wir wollen die darin definierte Funktion sqrt() verwenden.
  3. Fรผgen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefรผgt werden.
  5. Deklarieren Sie zwei Double-Variablen: Num und SquareRoot.
  6. Drucken Sie einen Text auf der Konsole. Der Text fordert den Benutzer auf, eine Zahl einzugeben.
  7. Lesen Sie Benutzereingaben von der Tastatur. Die Eingabe wird zum Wert der Variablen num.
  8. Rufen Sie die Bibliotheksfunktion sqrt() auf, die die Quadratwurzel einer Zahl berechnet. Wir haben der Funktion den Parameter num รผbergeben, was bedeutet, dass sie die Quadratwurzel von num berechnet. Diese Funktion ist in der cmath-Bibliothek definiert.
  9. Drucken Sie die vom Benutzer eingegebene Zahl, ihre Quadratwurzel und einen anderen Text auf der Konsole aus.
  10. Das Programm muss bei erfolgreichem Abschluss einen Wert zurรผckgeben.
  11. Ende des Hauptteils der main()-Funktion.

Benutzerdefinierte Funktionen

C++ ermรถglicht es Programmierern, eigene Funktionen zu definieren. Der Zweck der Funktion besteht darin, zusammengehรถrigen Code zu gruppieren. Der Code erhรคlt dann eine eindeutige Kennung, den Funktionsnamen.

Die Funktion kann von jedem anderen Teil des Programms aus aufgerufen/aufgerufen werden. AnschlieรŸend fรผhrt es den in seinem Hauptteil definierten Code aus.

Beispiel 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Ausgang:

Ausgabe der C++ benutzerdefinierte sayHello()-Funktion

Hier ist ein Screenshot des Codes:

C++ Code, der eine benutzerdefinierte Funktion definiert und aufruft

Code Erlรคuterung:

  1. Fรผgen Sie die iostream-Header-Datei in unser Programm ein, um deren Funktionen zu nutzen.
  2. Fรผgen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Erstellen Sie eine benutzerdefinierte Funktion mit dem Namen sayHello().
  4. Geben Sie Text auf der Konsole aus, wenn die Funktion sayHello() aufgerufen wird.
  5. Ende des Hauptteils der Funktion sayHello().
  6. Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefรผgt werden.
  7. Rufen Sie die Funktion sayHello() auf.
  8. Das Programm muss bei erfolgreichem Abschluss einen Wert zurรผckgeben.
  9. Ende des Hauptteils der main()-Funktion.

Der Compiler muss eine Funktion kennen, bevor sie verwendet wird.

Funktionsdeklaration/Prototyp

Wenn Sie nach der Funktion main() eine benutzerdefinierte Funktion definieren, wird die C++ Compiler gibt einen Fehler zurรผck. Der Grund dafรผr ist, dass der Compiler die Details der benutzerdefinierten Funktion nicht kennt. Zu den Details gehรถren ihr Name, die Argumenttypen und ihre Rรผckgabetypen.

In C++, die Funktionsdeklaration/der Prototyp deklariert eine Funktion ohne Hauptteil. Dies gibt dem Compiler Details der benutzerdefinierten Funktion.

In die Deklaration/den Prototyp schlieรŸen wir den Rรผckgabetyp, den Funktionsnamen und die Argumenttypen ein. Die Namen der Argumente werden nicht hinzugefรผgt. Das Hinzufรผgen der Argumentnamen erzeugt jedoch keinen Fehler.

C++ Syntaxdiagramm fรผr Funktionsdeklarationen/Prototypen

Funktionsdefinition

Der Zweck der Funktionsdeklaration besteht darin, dem C++ Compiler รผber den Funktionsnamen, den Rรผckgabetyp und die Parameter. Eine Funktionsdefinition informiert den C++ Compiler รผber den Funktionskรถrper.

C++ Funktionsdefinitionsstrukturdiagramm

Syntax

return_datatype function_name( parameters) {
   function body 
}

Aus dem Obigen geht hervor, dass eine Funktionsdefinition den Funktionskopf und -kรถrper hat. Hier eine Erklรคrung der Parameter:

  • return_datatype โ€“ Einige Funktionen geben einen Wert zurรผck. Dieser Parameter legt den Datentyp des Rรผckgabewerts fest. Manche Funktionen geben keinen Wert zurรผck. In diesem Fall ist der Wert dieses Parameters void.
  • Funktionsname โ€“ Dies ist der Name der Funktion. Der Funktionsname und die Parameter bilden die Funktionssignatur.
  • Parameter โ€“ Dies sind Art, Reihenfolge und Anzahl der Funktionsparameter. Manche Funktionen haben keine Parameter.
  • Funktionskรถrper โ€“ das sind Anweisungen, die definieren, was die Funktion tun wird.

Funktionsaufruf

Damit eine Funktion die angegebene Aufgabe ausfรผhren und eine Ausgabe zurรผckgeben kann, muss sie aufgerufen werden. Wenn Sie eine Funktion aufrufen, fรผhrt sie die in ihrem Hauptteil hinzugefรผgten Anweisungen aus.

Eine Funktion wird รผber ihren Namen aufgerufen. Falls die Funktion Parameter benรถtigt, mรผssen deren Werte beim Aufruf รผbergeben werden. Falls die Funktion keine Parameter benรถtigt, dรผrfen keine Werte รผbergeben werden.

C++ Syntaxdiagramm fรผr Funktionsaufrufe

รœbergeben von Argumenten

In C++, ein Argument/Parameter sind die Daten, die einer Funktion wรคhrend ihres Aufrufs รผbergeben werden. Die Werte mรผssen mit ihren jeweiligen Variablen initialisiert werden.

Beim Aufruf einer Funktion muss die Anzahl der Argumente รผbereinstimmen. Das bedeutet, dass die รผbergebenen Werte der Anzahl der Parameter entsprechen mรผssen. AuรŸerdem mรผssen die Werte auch vom Datentyp her mit den Parametern รผbereinstimmen. Ist der erste Parameter eine ganze Zahl, muss auch der รผbergebene Wert eine ganze Zahl sein.

Funktionsparametern kรถnnen Standardwerte zugewiesen werden. Wird beim Funktionsaufruf kein Wert fรผr den Parameter angegeben, wird der Standardwert verwendet.

Beispiel 3: So schreiben und rufen Sie eine Funktion auf

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Ausgang:

Ausgabe der C++ Die Funktion addFunc() gibt eine Summe zurรผck

Hier ist ein Screenshot des Codes:

C++ Code, der Argumente an die Funktion addFunc() รผbergibt

Code Erlรคuterung:

  1. Fรผgen Sie die iostream-Header-Datei in unser Programm ein, um deren Funktionen zu nutzen.
  2. Fรผgen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Deklarieren Sie eine Funktion namens addFunc(), die zwei ganzzahlige Parameter akzeptiert. Dadurch wird der Funktionsprototyp erstellt.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefรผgt werden.
  5. Deklarieren Sie drei ganzzahlige Variablen, x, y und sum.
  6. Drucken Sie einen Text auf der Konsole. Der Text fordert den Benutzer auf, zwei Zahlen einzugeben.
  7. Lesen Sie die Benutzereingaben von der Tastatur. Der Benutzer sollte zwei Zahlen fรผr die Variablen x und y eingeben, getrennt durch ein Leerzeichen.
  8. Rufen Sie die Funktion addFunc() auf und รผbergeben Sie ihr die Parameter x und y. Die Funktion verarbeitet diese Parameter und weist die Ausgabe der Variablen sum zu.
  9. Geben Sie die Werte der Variablen x, y und sum zusammen mit anderem Text auf der Konsole aus.
  10. Die Funktion muss nach erfolgreichem Abschluss einen Wert zurรผckgeben.
  11. Ende des Hauptteils der main()-Funktion.
  12. Funktionsdefinition. Wir definieren die Funktion addFunc(). Wir werden angeben, was die Funktion in ihrem Kรถrper, dem {}, tun wird.
  13. Deklarieren einer Ganzzahlvariablen namens addFunc.
  14. Addieren der Werte der Parameter num1 und num2 und Zuweisen des Ergebnisses zur Variablen addFunc.
  15. Die Funktion addFunc() sollte den Wert der Variablen addFunc zurรผckgeben.
  16. Ende des Funktionskรถrpers, also der Funktionsdefinition.

Hรคufig gestellte Fragen

Bei einem Wertaufruf wird das Argument kopiert, sodass ร„nderungen innerhalb der Funktion das Original nicht beeinflussen. Bei einem Referenzaufruf wird die Variable mit einem kaufmรคnnischen Und-Zeichen (&) รผbergeben, wodurch die Funktion den Wert des Aufrufers direkt รคndern kann. C++ StandardmรครŸig erfolgt der Aufruf per Wert.

Durch Funktionsรผberladung kรถnnen mehrere Funktionen denselben Namen tragen, sich aber in Anzahl oder Typ ihrer Parameter unterscheiden. Der Compiler wรคhlt die passende Version aus den รผbergebenen Argumenten aus, was die Lesbarkeit verwandter Operationen verbessert.

Eine Inline-Funktion weist den Compiler an, ihren Funktionskรถrper an jeder Aufrufstelle einzufรผgen, anstatt einen normalen Funktionsaufruf durchzufรผhren. Dies kann den Aufwand fรผr sehr kleine Funktionen reduzieren, allerdings kann der Compiler diesen Hinweis ignorieren.

Eine rekursive Funktion ruft sich selbst auf und zerlegt so ein Problem in kleinere Teilprobleme. Sie benรถtigt einen Abbruchfall, der die Rekursion beendet; andernfalls wiederholen sich die Aufrufe endlos und fรผhren zu einem Stack-รœberlauf. Die Fakultรคt ist ein klassisches Beispiel dafรผr.

Sie รผbergeben den Parameter als Zeiger oder als Array definierter GrรถรŸe und senden dessen Lรคnge รผblicherweise separat, da das Array zu einem Zeiger dekodiert wird. Siehe รœbergabe Arrays in C++ Funktionen fรผr vollstรคndige Rechenbeispiele.

Eine Funktion gibt direkt einen Wert zurรผck, aber Sie kรถnnen mehrere Werte mithilfe von Ausgabereferenzparametern, einer Struktur, einem `std::pair`, einem `std::tuple` oder einem `std::vector` zurรผckgeben. Strukturierte Bindungen entpacken dann das zurรผckgegebene Tupel an der Aufrufstelle.

Ja. KI-Codierungsassistenten wandeln einen Kommentar in einfacher Sprache in einen vollstรคndigen Code um. C++ Die Funktion schlรคgt Signatur, Rumpf und Rรผckgabetyp vor. AuรŸerdem werden lange Funktionen refaktoriert; die generierte Logik sollte jedoch รผberprรผft werden.

GitHub-Copilot Autovervollstรคndigungen C++ Es verarbeitet Funktionsdefinitionen, Prototypen und Aufrufe anhand Ihrer Kommentare oder Namen, schlรคgt รœberladungen vor und entwirft Unit-Tests. Es verwendet referenzierte Header fรผr den Kontext, aber jeder Vorschlag muss dennoch รผberprรผft werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: