Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Syntaks for Maler i C++ | Lage Første Mal
C++-Maler

Grunnleggende Syntaks for Maler i C++

Sveip for å vise menyen

Å lage en mal er faktisk ganske enkelt, og det er en av de letteste delene ved å bruke dem. For å begynne må du lage enten en funksjon eller en klasse. Vi starter med funksjonen.

main.cpp

main.cpp

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

Som du ser, er det en veldig enkel funksjon som ikke gjør noe foreløpig. Vi kan enkelt kalle den inne i main-funksjonen. Din oppgave nå er å gjøre den om til en mal.

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

La oss nå få den til å gjøre noe, for eksempel skrive ut en melding. Kall den inne i main-funksjonen for å se den i aksjon.

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, oppstår en feil når du prøver å kalle den som om det var en vanlig funksjon. Dette skjer fordi det ikke lenger bare er en enkel funksjon. På dette tidspunktet blir malparameteren som er angitt i vinkelklammene etter template-nøkkelordet, avgjø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
Merk

Det spiller ingen rolle hvilken type du angir i dette eksemplet, så du kan endre void til hvilken som helst type du ønsker. Det er imidlertid obligatorisk å spesifisere typen.

For funksjonsmalen MyFirstTemplate er det ikke nødvendig å angi et navn for typeparameteren. Du kan fjerne Name, og alt vil fortsatt fungere fordi typeparameteren ikke brukes inne i funksjonen.

question mark

Hva er riktig syntaks for å erklære en malfunksjon?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 2
some-alt