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.
main.cpp
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.
array.h
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5.88
Vorlagen mit Standardtyp-Parametern
Swipe um das Menü anzuzeigen
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.
main.cpp
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.
array.h
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.
Danke für Ihr Feedback!