Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Plantillas con Parámetros de Tipo Predeterminados | Plantillas de Clases
Templates en C++

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

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.

Note
Nota

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

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.

question mark

Cuando un parámetro de plantilla tiene un valor predeterminado, ¿cuál de las siguientes afirmaciones es verdadera?

Selecciona todas las respuestas correctas

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

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

Sección 3. Capítulo 3
some-alt