Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Creating Your First Template in C++ | Creating First Template
C++ Templates

book
Creating Your First Template in C++

Let's see what is happening when we specify different types for the template. For this we will use typeid().name(), it simply shows the data type of the variable. Look at the example below:

main.cpp

main.cpp

copy
#include <iostream>

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

Note

The code snippet above will just display in console i, symbolizing that x is an int.

Let's create a template using <typename Type> and pass Type as a parameter to the function instead of specifying a specific variable.

main.cpp

main.cpp

copy
#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>();
}
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>(); }

As you can see, when you call the template function and specify a type within the brackets, the typename parameter receives that type. The name of the template parameter essentially becomes an alias for that type.

Tarea

Swipe to start coding

  1. Turn the swap function into a template function:
    1. define template using the template keyword;
    2. add the list of template parameters;
    3. add one parameter for the template.
  2. Change all types (int) to the typename from the template parameter.
  3. Call the template function and pass char as the type, swapping two variables in the main function.

Solución

solution.cpp

solution.cpp

#include <iostream>

template <typename Type>
void swap(Type &a, Type &b) {
Type temp = a; // Store a in temp
a = b; // Assign b to a
b = temp; // Assign temp (original a) to b
}

int main()
{
char digit = '3';
char letter = 'a';
swap<char>(digit, letter);
}
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3
single

single

#include <iostream>

void swap(int &a, int &b) {
int temp = a; // Store a in temp
a = b; // Assign b to a
b = temp; // Assign temp (original a) to b
}

int main()
{
char digit = '3';
char letter = 'a';
swap<___>(digit, letter);
}

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt