Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Syntaks for Templates i C++ | Oprettelse af Første Skabelon
C++ Templates

Grundlæggende Syntaks for Templates i C++

Stryg for at vise menuen

At oprette en template er faktisk ret simpelt, og det er en af de nemmeste dele ved at bruge dem. For at begynde skal du enten oprette en funktion eller en klasse. Vi starter med funktionen.

main.cpp

main.cpp

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

Som du kan se, er der en meget simpel funktion, der ikke gør noget endnu. Vi kan nemt kalde den inde i main-funktionen. Din opgave nu er at gøre den til en template.

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() { }

Lad os nu få det til at gøre noget, for eksempel udskrive en besked. Kald den inde i main-funktionen for at se den i aktion.

main.cpp

main.cpp

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

Som du kan se, opstår der en fejl, når du forsøger at kalde den, som om det var en almindelig funktion. Dette sker, fordi det ikke længere blot er en simpel funktion. På dette tidspunkt bliver skabelonparameteren, der er angivet i vinkelparenteserne efter template-nøgleordet, afgørende.

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
Bemærk

Det er ligegyldigt, hvilken type du angiver i dette eksempel, så du kan ændre void til enhver ønsket type. Det er dog obligatorisk at angive typen.

For MyFirstTemplate funktionsskabelonen er det ikke nødvendigt at angive et navn for typeparameteren. Du kan fjerne Name, og alt vil stadig fungere, fordi typeparameteren ikke bruges inde i funktionen.

question mark

Hvad er den korrekte syntaks for at erklære en skabelonfunktion?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 2
some-alt