Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Maler med standard typeparametere | Klassetemplater
C++-Maler

Maler med standard typeparametere

Sveip for å vise menyen

Det er mulig å angi en standard parameter-type for en klassetemplate, og fra og med C++11 kan standard template-argumenter også brukes i funksjonstemplater. For å sette en standardtype, skriv ønsket type etter likhetstegnet 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 kjører koden over, vil utdataen være 25 i stedet for 25.5. Dette skjer fordi standardtypen for Box-klassen er satt til int, som kutter bort desimaldelen av verdien.

Note
Merk

På samme måte som med standardargumenter for funksjoner, hvis én malparameter har et standardargument, må alle malparametere som følger etter også ha standardargumenter.

I tillegg til standard typeparametere tillater C++ også ikke-type malparametere med standardverdier. Ikke-type parametere kan være heltallstyper, pekere eller referanser. For å angi en ikke-type standardparameter, tildeler du ganske enkelt en standardverdi etter 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` }

Standardverdier for malparametere forenkler koden, reduserer redundans og gjør det mulig for maler å håndtere vanlige brukstilfeller med minimal innsats, samtidig som de gir mulighet for tilpasning ved behov.

question mark

Når et malparameter har en standardverdi, hva er da riktig?

Velg alle riktige svar

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 3
some-alt