Sintaxis Básica de las Plantillas en C++
Desliza para mostrar el menú
Crear una plantilla es en realidad bastante sencillo, y es una de las partes más fáciles de utilizarlas. Para comenzar, necesitas crear una función o una clase. Empezaremos con la función.
main.cpp
123456void MyFirstTemplate() { } int main() { MyFirstTemplate(); }
Como puedes ver, hay una función muy simple que por ahora no hace nada. Podemos llamarla fácilmente dentro de la función main. Tu tarea ahora es convertirla en una plantilla.
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() { }
Ahora, hagamos que realice una acción, como imprimir un mensaje. Llámala dentro de la función principal para verla en funcionamiento.
main.cpp
123456789101112#include <iostream> template<typename Name> void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { MyFirstTemplate(); }
Como puedes ver, ocurre un error cuando intentas llamarla como si fuera una función regular. Esto sucede porque ya no es simplemente una función sencilla. En este punto, el parámetro de plantilla especificado dentro de los corchetes angulares después de la palabra clave template se vuelve esencial.
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 }
No importa qué tipo especifiques para este ejemplo, por lo que puedes cambiar void por cualquier tipo que desees. Sin embargo, especificar el tipo es obligatorio.
Para la plantilla de función MyFirstTemplate, no es necesario especificar un nombre para el parámetro de tipo. Puedes eliminar Name, y todo seguirá funcionando porque el parámetro de tipo no se utiliza dentro de la función.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla