Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Skabeloner med standardtypeparametre | Klasse-skabeloner
C++ Templates

Skabeloner med standardtypeparametre

Stryg for at vise menuen

Det er muligt at angive en standardparametertype for en klassetemplate, og fra og med C++11 kan standard template-argumenter også bruges i funktionstemplates. For at angive en standardtype skrives den ønskede type blot efter lighedstegnet for template-parameteren.

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

Når du kører koden ovenfor, vil output være 25 i stedet for 25.5. Dette sker, fordi standardtypen for Box-klassen er sat til int, hvilket afkorter decimaldelen af værdien.

Note
Bemærk

Ligesom med standardargumenter for funktioner gælder det, at hvis én skabelonparameter har et standardargument, skal alle efterfølgende skabelonparametre også have standardargumenter.

Ud over standardtypeparametre tillader C++ også ikke-type skabelonparametre med standardværdier. Ikke-type parametre kan være heltalstyper, pegere eller referencer. For at angive en ikke-type standardparameter tildeles blot en standardværdi efter parameteren.

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

Standard templateparametre forenkler koden, reducerer redundans og gør det muligt for skabeloner at håndtere typiske anvendelsestilfælde med minimal indsats, samtidig med at de tillader tilpasning efter behov.

question mark

Når en templateparameter har en standardværdi, hvad er så korrekt?

Vælg alle korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 3. Kapitel 3
some-alt