Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Vorlagen mit Standardtyp-Parametern | Klassenvorlagen
C++-Vorlagen
course content

Kursinhalt

C++-Vorlagen

C++-Vorlagen

1. Erstellen der Ersten Vorlage
2. Verwendung von Templates
3. Klassenvorlagen
4. Templatespezialisierung

book
Vorlagen mit Standardtyp-Parametern

Es ist möglich, einen Standardparametertyp für eine Klassenvorlage anzugeben, und ab C++11 können Standardvorlagenargumente auch in Funktionsvorlagen verwendet werden. Um einen Standardtyp festzulegen, schreiben Sie einfach den gewünschten Typ nach dem Gleichheitszeichen für den Vorlagenparameter.

cpp

main

copy
123456789101112131415
#include <iostream> template <typename T = int> // `int` will be used as a default type class Box { T value; // Stores the value of type `T` public: Box(T value) : value(value) { std::cout << this->value; } }; int main() { // Type not specified // VV Box<> intBox(25.5); }

Wenn Sie den obigen Code ausführen, wird die Ausgabe 25 anstelle von 25.5 sein. Dies geschieht, weil der Standardtyp für die Box-Klasse auf int gesetzt ist, was den Dezimalteil des Wertes abschneidet.

Hinweis

Ähnlich wie bei Standardargumenten für Funktionen, wenn ein Template-Parameter ein Standardargument hat, müssen alle folgenden Template-Parameter ebenfalls Standardargumente haben.

Zusätzlich zu Standardtyp-Parametern erlaubt C++ auch Nicht-Typ-Template-Parameter mit Standardwerten. Nicht-Typ-Parameter können integrale Typen, Zeiger oder Referenzen sein. Um einen Nicht-Typ-Standardparameter anzugeben, weisen Sie einfach einen Standardwert nach dem Parameter zu.

h

array

copy
123456
// `int` and `10` are default parameters template <typename T = int, size_t Size = 10> struct Array { T arr[Size]; // Array with a fixed size of `Size` }

Standard-Template-Parameter vereinfachen den Code, reduzieren Redundanzen und ermöglichen es Templates, typische Anwendungsfälle mit minimalem Aufwand zu bewältigen, während sie bei Bedarf Anpassungen zulassen.

Wenn ein Template-Parameter einen Standardwert hat, was ist dann richtig?

Wenn ein Template-Parameter einen Standardwert hat, was ist dann richtig?

Wählen Sie einige richtige Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt