Avsnitt 2. Kapitel 3
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
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
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.
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 2. Kapitel 3
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal