Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Basic Syntax of Templates in C++ | Ensimmäisen Templaten Luominen
C++-Template-Luokat

Basic Syntax of Templates in C++

Pyyhkäise näyttääksesi valikon

Templaatin luominen on itse asiassa varsin yksinkertaista, ja se on yksi helpoimmista osista niiden käytössä. Aloittaaksesi sinun täytyy luoda joko funktio tai luokka. Aloitamme funktiolla.

main.cpp

main.cpp

123456
void MyFirstTemplate() { } int main() { MyFirstTemplate(); }

Kuten näet, kyseessä on hyvin yksinkertainen funktio, joka ei tee vielä mitään. Voimme helposti kutsua sitä main-funktiossa. Tehtävänäsi on nyt muuttaa se templaattiin.

template.h

template.h

123456789101112
// To create a template, you need to add code above the function or class // Start with the keyword `template` to indicate you're defining a template // template // Add angle brackets `<>`, this is list of the parameters for template // template < > // Inside of it has to be keyword `typename` and the name of it // template <typename Name> template <typename Name> void MyFirstTemplate() { }

Nyt tehdään siitä toimiva, esimerkiksi tulostamalla viesti. Kutsu sitä pääfunktiossa nähdäksesi sen toiminnassa.

main.cpp

main.cpp

123456789101112
#include <iostream> template<typename Name> void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { MyFirstTemplate(); }

Kuten huomaat, virhe tapahtuu, kun yrität kutsua sitä kuin tavallista funktiota. Tämä johtuu siitä, että kyseessä ei ole enää pelkkä yksinkertainen funktio. Tässä vaiheessa kulmasulkeiden sisällä template-avainsanan jälkeen määritelty malliparametri on olennainen.

main.cpp

main.cpp

12345678910111213
#include <iostream> // This essentioally creates an alias for a type you will use template<typename Name> // In this case the name of the type is Name void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { // In order to call the template function properly // You need to specify any type inside the brackets MyFirstTemplate<void>(); // This tells the template to use void as the type for Name }
Note
Huomio

Tällä esimerkillä ei ole väliä, minkä tyypin määrität, joten voit vaihtaa void mihin tahansa haluamaasi tyyppiin. Tyypin määrittäminen on kuitenkin pakollista.

MyFirstTemplate-funktiotemplaatin tapauksessa tyyppiparametrille ei ole pakko määrittää nimeä. Voit poistaa Name-osan, ja kaikki toimii silti, koska tyyppiparametria ei käytetä funktion sisällä.

question mark

Mikä on oikea syntaksi template-funktion määrittelyyn?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 1. Luku 2
some-alt