Programación en C++ – Polimorfismo

El polimorfismo es un concepto clave en la programación orientada a objetos (POO) que se refiere a la capacidad de una clase para tomar múltiples formas y comportarse de diferentes maneras. Hay dos tipos principales de polimorfismo en C++: el polimorfismo de compilación (o estático) y el polimorfismo de ejecución (o dinámico).

Polimorfismo de Compilación (Estático): El polimorfismo de compilación se logra a través del uso de sobrecarga de funciones y operadores, así como mediante plantillas. Permite que una función tenga múltiples formas dependiendo de los tipos de sus argumentos.

#include <iostream>

using namespace std;

int suma(int a, int b) {
    return a + b;
}

double suma(double a, double b) {
    return a + b;
}

int main() {
    cout << suma(2, 3) << endl;        // Llama a la versión para enteros
    cout << suma(2.5, 3.5) << endl;    // Llama a la versión para doubles

    return 0;
}

Polimorfismo de Ejecución (Dinámico): El polimorfismo de ejecución se logra a través de la herencia y las funciones virtuales. Permite que los objetos de diferentes clases derivadas se comporten de manera diferente cuando se llaman a las mismas funciones.

#include <iostream>

using namespace std;

class Animal {
public:
    virtual void sonido() {
        cout << "Animal hace un sonido genérico." << endl;
    }
};

class Perro : public Animal {
public:
    void sonido() override {
        cout << "El perro ladra." << endl;
    }
};

class Gato : public Animal {
public:
    void sonido() override {
        cout << "El gato maulla." << endl;
    }
};

int main() {
    Animal* miAnimal;
    Perro miPerro;
    Gato miGato;

    miAnimal = &miPerro;
    miAnimal->sonido(); // Polimorfismo: llama al método de la clase derivada

    miAnimal = &miGato;
    miAnimal->sonido(); // Polimorfismo: llama al método de la otra clase derivada

    return 0;
}

En este ejemplo, Animal es la clase base y Perro y Gato son clases derivadas. Al usar funciones virtuales, se logra que el método sonido() se comporte de manera diferente según la clase concreta a la que apunta el puntero miAnimal.

Pueder ir al artículo principal:

Códigos Sencillos hechos en C++

One thought on “Programación en C++ – Polimorfismo

Deja un comentario