Plantillas con Parámetros de Tipo Predeterminados
Desliza para mostrar el menú
Es posible especificar un tipo de parámetro predeterminado para una plantilla de clase y, a partir de C++11, también se pueden usar argumentos de plantilla predeterminados en plantillas de funciones. Para establecer un tipo predeterminado, simplemente escribe el tipo deseado después del signo igual para el parámetro de la plantilla.
main.cpp
123456789101112131415#include <iostream> template <typename T = int> // `int` will be used as a default type class Box { T value; // Stores the value of type `T` public: Box(T value) : value(value) { std::cout << this->value; } }; int main() { // Type not specified // VV Box<> intBox(25.5); }
Cuando ejecutes el código anterior, la salida será 25 en lugar de 25.5. Esto ocurre porque el tipo predeterminado para la clase Box está establecido como int, lo que trunca la parte decimal del valor.
Similar a los argumentos predeterminados en funciones, si un parámetro de plantilla tiene un argumento predeterminado, entonces todos los parámetros de plantilla que le siguen también deben tener argumentos predeterminados.
Además de los parámetros de tipo predeterminados, C++ permite parámetros de plantilla no tipados con valores predeterminados. Los parámetros no tipados pueden ser tipos integrales, punteros o referencias. Para especificar un parámetro no tipado predeterminado, simplemente se asigna un valor predeterminado después del parámetro.
array.h
123456// `int` and `10` are default parameters template <typename T = int, size_t Size = 10> struct Array { T arr[Size]; // Array with a fixed size of `Size` }
Los parámetros de plantilla predeterminados simplifican el código, reducen la redundancia y permiten que las plantillas manejen casos de uso típicos con un esfuerzo mínimo, al tiempo que permiten la personalización cuando sea necesario.
¡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