C ++ - Funktionsvorlage (mit Beispiel)

Inhaltsverzeichnis

In diesem Tutorial lernen wir anhand von Beispielen Funktionsvorlagen in C ++ kennen.

Vorlagen sind leistungsstarke Funktionen von C ++, mit denen wir generische Programme schreiben können.

Mithilfe einer Vorlage können wir eine einzelne Funktion erstellen, um mit verschiedenen Datentypen zu arbeiten.

Funktionsvorlagenerklärung

Eine Funktionsvorlage beginnt mit dem Schlüsselwort, templategefolgt von Vorlagenparametern, auf die eine Funktionsdeklaration folgt.

 template T functionName(T parameter1, T parameter2,… ) ( // code )

In dem obigen Code, Tist eine Schablone Argument , das verschiedene Datentypen (akzeptiert int, floatusw.), und typenameein Schlüsselwort ist .

Wenn ein Argument eines Datentyps übergeben wird functionName(), generiert der Compiler eine neue Version von functionName()für den angegebenen Datentyp.

Aufrufen einer Funktionsvorlage

Sobald wir eine Funktionsvorlage deklariert und definiert haben, können wir sie in anderen Funktionen oder Vorlagen (z. B. der main()Funktion) mit der folgenden Syntax aufrufen

 functionName(parameter1, parameter2,… );

Betrachten wir zum Beispiel eine Vorlage, die zwei Zahlen hinzufügt:

 template T add(T num1, T num2) ( return (num1 + num2); )

Wir können es dann in der main()Funktion zum Hinzufügen intund doubleZahlen aufrufen .

 int main() ( int result1; double result2; // calling with int parameters result1 = add(2, 3); cout << result1 << endl; // calling with double parameters result2 = add(2.2, 3.3); cout << result2 << endl; return 0; ) 
Funktionsaufruf basierend auf Datentypen

Beispiel: Ermitteln des Absolutwerts von Zahlen

 #include using namespace std; template T add(T num1, T num2) ( return (num1 + num2); ) int main() ( int result1; double result2; // calling with int parameters result1 = add(2, 3); cout << "2 + 3 = " << result1 << endl; // calling with double parameters result2 = add(2.2, 3.3); cout << "2.2 + 3.3 = " << result2 << endl; return 0; )

Ausgabe

 2 + 3 = 5 2,2 + 3,3 = 5,5

Interessante Beiträge...