C++ Standardfunktionsargumente: Funktionsweise & Best Practices
C++ Standardfunktionsargumente
Erkunden Sie, wie Sie Standardwerte für Funktionsparameter in C++ zuweisen, mit schrittweisen Beispielen und praktischen Richtlinien.
In C++ können Funktionsparameter Standardwerte erhalten. Wenn ein Aufruf ein Argument weglässt, ersetzt der Compiler den Standard. Wird ein Argument übergeben, wird der Standard ignoriert.
Wie Standardargumente funktionieren

Betrachten Sie die folgende Illustration:
temp()verwendet beide Standardwerte.temp(6)überschreibt den ersten Parameter; der zweite bleibt Standard.temp(6, -2.3)liefert Werte für beide, überschreibt beide Standards.temp(3.4)übergibt fälschlicherweise einen double an einen int-Parameter. Der Compiler kürzt den Wert auf3, was zeigt, dass Argumenttypen der Deklarationsreihenfolge entsprechen müssen.
Beispiel: Standardargumente verwenden
#include <iostream>
using namespace std;
// Prototyp mit Standardargumenten
void display(char = '*', int = 3);
int main()
{
int count = 5;
cout << "No argument passed: ";
display(); // verwendet '*', 3
cout << "First argument passed: ";
display('#'); // verwendet '#', 3
cout << "Both arguments passed: ";
display('$', count); // verwendet '$', 5
return 0;
}
void display(char c, int count)
{
for(int i = 1; i <= count; ++i)
{
cout << c;
}
cout << endl;
}
Ausgabe
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Das Programm verhält sich wie folgt:
display()verwendet die Standardsc='*'undcount=3.display('#')überschreibt nur das erste Argument; der zweite bleibt Standard.- Wenn beide Argumente übergeben werden, werden Standards ignoriert.
Die Definition der Standards direkt in der Funktionsdefinition ist ebenfalls gültig und oft klarer:
#include <iostream>
using namespace std;
void display(char c = '*', int count = 3)
{
for(int i = 1; i <= count; ++i)
{
cout << c;
}
cout << endl;
}
int main()
{
int count = 5;
cout << "No argument passed: ";
display();
cout << "First argument passed: ";
display('#');
cout << "Both arguments passed: ";
display('$', count);
return 0;
}
Wichtige Punkte zum Merken
- Nachdem ein Parameter einen Standardwert erhalten hat, muss jeder folgende Parameter ebenfalls einen Standard haben. Zum Beispiel:
// Ungültig void add(int a, int b = 3, int c, int d); // Gültig void add(int a, int c, int b = 3, int d = 4); - Wenn Standards in der Definition statt im Prototyp angegeben sind, muss die Definition jedem Aufruf vorausgehen. Andernfalls gibt der Compiler einen Fehler aus.
C Sprache
- Namespaces in C# meistern: Organisation, Gültigkeitsbereich und Best Practices
- C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
- C++-Kommentare: Best Practices für lesbaren, wartbaren Code
- Arrays an Funktionen in C++ übergeben: Ein praktischer Leitfaden
- C++ Klassentemplates meistern: Ein praktischer Leitfaden
- C Programmierungsoperatoren meistern: Ein umfassender Leitfaden
- Vier bewährte Muster für benutzerdefinierte Funktionen in C
- C-Programmierung meistern: Umfassendes Tutorial für Einsteiger
- C-Funktionen meistern: Struktur, Deklaration & Best Practices
- Variable Argumente in C meistern: Ein praktischer Leitfaden