Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Skapa Din Första Mall i C++ | Skapa Första Mall
C++-Mallar
Avsnitt 1. Kapitel 3
single

single

Skapa Din Första Mall i C++

Svep för att visa menyn

Låt oss se vad som händer när du anger olika typer för mallen. För detta använder du typeid().name(), som helt enkelt visar datatypen för variabeln. Se exemplet nedan:

main.cpp

main.cpp

1234567
#include <iostream> int main() { int x = 5; std::cout << typeid(x).name(); }
Note
Notering

Kodsnutten ovan kommer bara att visa i i konsolen, vilket symboliserar att x är en int.

Skapa en mall med <typename Type> och använd Type som parameter till funktionen istället för att ange en specifik variabel.

main.cpp

main.cpp

12345678910111213
#include <iostream> template<typename Type> void check_type() { std::cout << typeid(Type).name() << std::endl; } int main() { // Try to change `int` to different type check_type<int>(); }

Som du kan se, när du anropar mallfunktionen och anger en typ inom hakparenteser, tar typename-parametern emot den typen. Namnet på mallparametern blir i princip ett alias för den typen.

Du kan även använda den mallparametern i funktionskroppen för att deklarera variabler av just den typen.

main.cpp

main.cpp

12345678
template<typename Type> void create_variable() { Type value; // Variable of the template type value = Type(); // Default initialization std::cout << value << std::endl; }
Uppgift

Svep för att börja koda

  • Gör om funktionen swap till en mallfunktion:
    • definiera template med hjälp av nyckelordet template;
    • lägg till en lista med template-parametrar;
    • lägg till en parameter för template.
  • Ändra alla typer (int) till typename från template-parametern.
  • Anropa mallfunktionen och ange char som typ, och byt plats på två variabler i main-funktionen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt