Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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

C++ Standardfunktionsargumente: Funktionsweise & Best Practices

Betrachten Sie die folgende Illustration:

  1. temp() verwendet beide Standardwerte.
  2. temp(6) überschreibt den ersten Parameter; der zweite bleibt Standard.
  3. temp(6, -2.3) liefert Werte für beide, überschreibt beide Standards.
  4. temp(3.4) übergibt fälschlicherweise einen double an einen int-Parameter. Der Compiler kürzt den Wert auf 3, 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:

  1. display() verwendet die Standards c='*' und count=3.
  2. display('#') überschreibt nur das erste Argument; der zweite bleibt Standard.
  3. 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

  1. 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);
  2. 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

  1. Namespaces in C# meistern: Organisation, Gültigkeitsbereich und Best Practices
  2. C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
  3. C++-Kommentare: Best Practices für lesbaren, wartbaren Code
  4. Arrays an Funktionen in C++ übergeben: Ein praktischer Leitfaden
  5. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  6. C Programmierungsoperatoren meistern: Ein umfassender Leitfaden
  7. Vier bewährte Muster für benutzerdefinierte Funktionen in C
  8. C-Programmierung meistern: Umfassendes Tutorial für Einsteiger
  9. C-Funktionen meistern: Struktur, Deklaration & Best Practices
  10. Variable Argumente in C meistern: Ein praktischer Leitfaden