Junior
¿Qué es el polimorfismo en el contexto de los lenguajes de programación C/C++?
sobes.tech AI
Respuesta de la IA
El polimorfismo es la propiedad de los objetos de tener muchas formas o representar varios tipos en una jerarquía de herencia. Permite trabajar con objetos de diferentes clases a través de una interfaz común de la clase base.
En C++, el polimorfismo se implementa de dos maneras principales:
-
Polimorfismo en tiempo de compilación (estático, polimorfismo ad-hoc):
- Se realiza mediante sobrecarga de funciones y sobrecarga de operadores.
- La selección de la función o el operador específico que se implementará ocurre en tiempo de compilación.
// Ejemplo de sobrecarga de funciones void print(int a) { /* ... */ } void print(double b) { /* ... */ } -
Polimorfismo en tiempo de ejecución (dinámico, polimorfismo de subtipos):
- Se realiza mediante funciones virtuales y punteros/enlaces a la clase base.
- La selección de la función específica que se llamará ocurre en tiempo de ejecución.
- Requiere que al menos una función virtual exista en la clase base.
- Utiliza la tabla de funciones virtuales (vtable).
// Ejemplo de polimorfismo dinámico class Base { public: virtual void show() { /* Implementación en la clase base */ } }; class Derived : public Base { public: void show() override { /* Implementación sobreescrita */ } }; // Uso Base* ptr = new Derived(); ptr->show(); // Se llama a Derived::show()
El polimorfismo permite escribir código más flexible y extensible, ya que se pueden agregar nuevas clases sin modificar el código existente que trabaja con la clase base.