Programación en C++ – Plantillas de funciones y clases

Las plantillas en C++ son una característica poderosa que te permite escribir código genérico, lo que significa que puedes crear funciones y clases que funcionen con diferentes tipos de datos sin tener que duplicar código. Esto facilita la reutilización del código y la creación de estructuras de datos y algoritmos que sean flexibles y adaptables a diferentes tipos de datos.

Plantillas de Funciones: Una plantilla de función te permite definir una función genérica que puede trabajar con diferentes tipos de datos. Se define utilizando la palabra clave template seguida de la declaración de la función con un parámetro de tipo genérico.

#include <iostream>

template <typename T>
T suma(T a, T b) {
    return a + b;
}

int main() {
    int resultadoInt = suma<int>(5, 10);
    double resultadoDouble = suma<double>(3.5, 2.5);

    std::cout << "Resultado int: " << resultadoInt << std::endl;
    std::cout << "Resultado double: " << resultadoDouble << std::endl;

    return 0;
}

Especialización de Plantillas: También puedes especializar plantillas para tratar casos específicos de manera diferente. Por ejemplo, puedes proporcionar implementaciones específicas para ciertos tipos de datos.

#include <iostream>
#include <cstring>

template <typename T>
T maximo(T a, T b) {
    return a > b ? a : b;
}

template <>
const char* maximo(const char* a, const char* b) {
    return std::strcmp(a, b) > 0 ? a : b;
}

int main() {
    int intMax = maximo(5, 10);
    const char* strMax = maximo("manzana", "cereza");

    std::cout << "Max int: " << intMax << std::endl;
    std::cout << "Max string: " << strMax << std::endl;

    return 0;
}

Pueder ir al artículo principal:

Códigos Sencillos hechos en C++

Deja un comentario