Berechne mit dieser Funktion die Summe der Werte eines Arrays.
template <typename T>
T sumValue(T array[], int size) {
T sum = 0;
for (uint i = 0; i < size; i++) {
sum += array[i];
}
return sum;
}
Lass uns den Code Schritt für Schritt verstehen.
template <typename T>
Damit der Code möglichst dynamisch funktioniert und eine Funktion mehrere Datentypen handhaben kann, verwendet man ein sogenanntes "template". In diesem Fall wird der Templateparameter mit dem Namen "T" deklariert. Link
T averageValue(T array[], int size)
Hier findet die Funktionsdefinition statt. Man gibt den Datentyp der Rückgabe (T = Rückgabe im Format des Templateparameters), den Namen der Funktion (averageValue) und den Datentyp der Übergabeparameter mitsamt dem Namen (T array[], int size) an. Der Templateparameter "T" ersetzt vorerst den Datentyp, bis ein Funktionsaufruf stattfindet. Erst bei der Übergabe kann der Datentyp, der übergebenen Variable "array[]", dem Templateparameter "T" zugewiesen werden.
T sum = 0
Die Variable "sum" wird als Puffer verwendet um die (Zwischen-)Summe zu speichern. Sie ist vom Typ T, da auch dieser Wert dem Typ des Array entsprechen muss. Der Initialwert wird bei dieser Deklaration auf 0 gesetzt.
for (uint i = 1; i < size; i++)
Diese for-Schleife loopt solange über mein übergebenes Array, bis alle Elemente aufsummiert worden sind. Daher muss ich als Übergabeparameter auch die Größe vom Array übergeben, damit die Anzahl der Schleifendurchläufe begrenzt wird.
sum += array[i]
In jedem Durchlauf der for-Schleife wird der Wert an der Stelle "i" im Array zur Zwischensumme addiert.
return sum
Nachdem alle Elemente im Array zur Variable "sum" addiert wurde, kann diese mit dem return-Statement zurückgegeben werden.