C++ Tutorial

 Default-Parameter

Werden für Parameter häufig gleiche Werte übergeben, können für diese Parameter Defaultwerte definiert werden.

Definition

Um für einen Parameter ein Defaultwert zu definieren, folgt nach dem Parameternamen der Zuweisungsoperator und anschließend der Defaultwert. Dabei ist zu beachten, dass für alle nach einem Parameter mit einem Defaultwert (Default-Parameter) folgenden Parameter ebenfalls Defaultwerte definiert sein müssen.

Default-Parameter können entweder bei Deklaration oder Definition der Funktion definiert werden.

// Funktion zum Aufsummieren von 2, 3 oder 4 ints
int Sum(int val1, int val2, int val3=0, int val4=0)
{
   return val1+val2+val3+val4;
}
// Aber das ist nicht erlaubt, da fuer den nach
// val3 folgenden Parameter val4 kein Defaultwert
// vorgegeben wurde!
// int Sum(int val1, int val2, int val3=0, int val4)

Funktionsaufruf

Beim Funktionsaufruf können Argumente, für die ein Default-Parameter definiert ist, weggelassen werden. Wird aber für ein Default-Parameter ein Argument übergeben, sind für alle davorstehenden Default-Parameter ebenfalls Argumente zu übergeben.

#include <iostream>
#include <format>

// Funktion zum Aufsummieren von bis zu 4 ints
int Sum(int val1, int val2, int val3=0, int val4=0)
{
   return val1+val2+val3+val4;
}

int main()
{
   // Beliebige ints definieren
   int v1=1, v2=2;
   // 2 Werte addieren
   std::cout << std::format("v1+v2: {}\n",Sum(v1,v2));
   // 3 Werte addieren
   std::cout << std::format("v1+v2+v1: {}\n",Sum(v1,v2,v1));
   // 4 Werte addieren
   std::cout << std::format("v1+v2+v2+v1: {}\n",Sum(v1,v2,v2,v1));
   // Aber folgendes fuehrt zu einem Fehler!
   // auto res = Sum(v1,v2,,v1);
}