Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ei-tyyppiset Malliparametrit | Mallipohjien Käyttö
C++-Template-Luokat
Osio 2. Luku 3
single

single

Ei-tyyppiset Malliparametrit

Pyyhkäise näyttääksesi valikon

Määriteltäessä mallipohjaa (template), voidaan tyyppien lisäksi välittää myös arvoja. Tämä mahdollistaa mallipohjien luomisen, jotka käyttäytyvät eri tavoin annettujen arvojen perusteella, mutta palaamme tähän aiheeseen hieman myöhemmin.

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 }

Tämän lähestymistavan tärkein etu on, että kaikki laskutoimitukset suoritetaan käännösaikana, mikä mahdollistaa sen käytön metaprogrammoinnissa.

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 }

Kun suoritat käännetyn ohjelman, b:n arvo on jo 25. Laskenta suoritetaan käännösaikana, mikä johtaa nollaan suoritusaikaisiin operaatioihin.

question mark

Mikä on ei-tyyppisten malliparametrien keskeinen etu C++-malleissa?

Valitse oikea vastaus

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt