Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Ikke-type Malparametere | Bruk av maler
C++-Maler
Seksjon 2. Kapittel 3
single

single

Ikke-type Malparametere

Sveip for å vise menyen

Når vi definerer en mal, kan vi ikke bare angi typer, men også sende verdier til disse typene. Dette betyr at vi kan lage maler som oppfører seg forskjellig basert på de oppgitte verdiene, men vi kommer tilbake til dette litt senere.

main.cpp

main.cpp

123456789101112
#include <iostream> // Non-type parameter means we won't use typename // Instead you can use an actual type for it template<int N> void PrintValue() { std::cout << N << std::endl; } int main() { // Call the template function with a literal integer PrintValue<5>(); // 5 }

Hovedfordelen med denne tilnærmingen er at alle beregninger utføres under kompilering, noe som muliggjør bruk i metaprogrammering.

main.cpp

main.cpp

1234567891011
#include <iostream> // Template function to calculate the square of a non-type parameter I template<int I> int Square() { return I * I; } // Return the square of I int main() { // The result of Square<5>() is computed at compile time int b = Square<5>(); // b will be initialized to 25 }

Når du kjører det kompilerte programmet, vil verdien av b allerede være 25. Beregningen utføres under kompilering, noe som gir null operasjoner ved kjøretid.

question mark

Hva er en viktig fordel med å bruke ikke-type malparametere i C++-maler?

Velg det helt riktige svaret

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
single

single

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

some-alt