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

Templates mit Standardtyp-Parametern

Swipe um das Menü anzuzeigen

Es ist möglich, einen Standardtyp für einen Klassentemplate-Parameter anzugeben. Seit C++11 können Standardtemplate-Argumente auch in Funktionstemplates verwendet werden. Um einen Standardtyp festzulegen, schreibt man einfach den gewünschten Typ nach dem Gleichheitszeichen beim Template-Parameter.

main.cpp

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); }

Beim Ausführen des obigen Codes wird die Ausgabe 25 statt 25.5 sein. Dies liegt daran, dass der Standardtyp für die Klasse Box auf int gesetzt ist, wodurch der Dezimalanteil des Wertes abgeschnitten wird.

Note
Hinweis

Ähnlich wie bei Standardargumenten von Funktionen gilt: Wenn ein Template-Parameter ein Standardargument besitzt, müssen alle nachfolgenden Template-Parameter ebenfalls Standardargumente haben.

Zusätzlich zu Standard-Typ-Parametern erlaubt C++ auch nicht-typisierte Template-Parameter mit Standardwerten. Nicht-typisierte Parameter können Ganzzahltypen, Zeiger oder Referenzen sein. Um einen nicht-typisierten Standardparameter anzugeben, weist man dem Parameter einfach einen Standardwert zu.

array.h

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` }

Standardmäßige Template-Parameter vereinfachen den Code, reduzieren Redundanz und ermöglichen es Templates, typische Anwendungsfälle mit minimalem Aufwand zu behandeln, während sie bei Bedarf Anpassungen zulassen.

question mark

Wenn ein Template-Parameter einen Standardwert hat, welche der folgenden Aussagen trifft zu?

Wählen Sie alle richtigen Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 3. Kapitel 3
some-alt