Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Icke-Typ Mallparametrar | Användning av Mallar
C++-Mallar
Avsnitt 2. Kapitel 3
single

single

Icke-Typ Mallparametrar

Svep för att visa menyn

Vid definition av en mall kan vi inte bara specificera typer utan även skicka värden till dessa typer. Detta innebär att vi kan skapa mallar som beter sig olika beroende på de angivna värdena, men vi återkommer till detta lite senare.

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 }

Den största fördelen med detta tillvägagångssätt är att alla beräkningar utförs vid kompileringstillfället, vilket möjliggör användning inom 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 kör det kompilerade programmet kommer värdet på b redan att vara 25. Beräkningen utförs vid kompileringstillfället, vilket resulterar i noll operationer vid körtid.

question mark

Vilken är en viktig fördel med att använda icke-typ mallparametrar i C++-mallar?

Vänligen välj det korrekta svaret

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt