Funktionsvorlagen in C++ veranschaulicht

June 14

Angenommen, Sie möchten eine Funktion, Mult, vornehmen, die zwei Zahlen multipliziert. Sie können eine separate Version für jeden Datentyp, der die Methode überladen ist, schreiben, oder Sie können verwenden C++-Funktion-Vorlagen und haben eine Funktionssignatur statt drei. Vorlagen für C++-Funktion automatisieren Typ übergeben, geben die Bibliotheksbenutzer ausdrucksvoller macht und reduzieren die Kosten für die Wartung des Programmcodes.

Anweisungen

1 Überladen Sie eine Funktion, die der Typ Int, Float und Double Zahlen multipliziert:

Int Mult (Int a, Int b) {}

Rückkehr ( b);

}

schweben Mult (Schwimmen, Schwimmen-b) {}

zurück (ein b);

}

doppelte Mult (double a, double-b) {}

zurück (a * b);

}

2 Das gleiche tun, die Schritt 1 mit C++ Funktionsvorlagen tut:

Vorlage < Klasse T >

T-Mult (T a T b) {}

zurück (a * b);

}

3 Vergleichen Sie Schritt 2 zu Schritt 1. Die zusätzliche Codezeile oberhalb der Funktionsdefinition in Schritt 2 scheint ein guter Kompromiss für wiederholte Funktionsrumpf mindestens zwei Mal.

4 Zurück zur Ordnung der Schritt 2. T ist die Typename. Das Class-Schlüsselwort bedeutet, dass jede Identität nehmen können. Es ist ein generischer Typ, den der Compiler interpretiert, je nachdem, welche der Benutzer darauf übergibt Parameter dynamisch. So kann T Integer, Float, Double oder eine Klasse mit dem multiplizieren Operator definiert; ansonsten die multiplizieren Betrieb bleibt undefiniert.

5 Testen Sie gründlich die Funktionssignatur, die Vorlagen verwendet. Durchführen Sie Tests mit den erwarteten Datentypen um sicherzustellen, dass Sie unerwartete Ergebnisse erhalten, nicht.

Tipps & Warnungen

  • Vorlagen sind eine relativ neue Funktion von C++.
  • Es ist möglich, Schachteln, Vorlagen und andere Programmier-Kunststücke mit ihnen durchführen. Dies nennt man Metaprogrammierung und erfordert ein Buch.
  • Vorlagen sind eine Funktion der Standard Template Library (STL).