03 Polimorfismo Y Funciones Virtuales
El polimorfismo en la programación orientado a objetos se refiere a la capacidad que tienen las clases derivadas, que parten de una misma clase base, de utilizarun mismo método de forma diferente. Es un concepto que se lleva a cabo mediante la utilización de funciones virtuales.
Una función virtual es un mecanismo que permite a las clases derivadas redefinirlas funciones de las clases base. Las funciones virtuales se definen en la clase base.
Ejemplo 01:
La clase padre Figuras tiene la función virtual pintar.
La clase Circulo, heredada de la claseFiguras, redefiniendo la función pintar.
La clase Cuadrado, heredada de la clase Figuras, también redefiniendo la función pintar.
//archivo: principal.cpp
# include
using std::cout;
classFiguras
{
public:
virtual void pintar() { cout << "Yo pinto todo. \n"; }
virtual ~Figuras() {}
};
class Circulo : public Figuras
{
public:
void pintar() { cout << "Yo pinto el circulo.\n"; }
virtual ~Circulo() {}
};
class Cuadrado : public Figuras
{
public:
void pintar() { cout << "Yo pinto el cuadrado. \n"; }
virtual ~Cuadrado() {}
};
class OtraFigura : publicFiguras
{
virtual ~OtraFigura() {}
};
int main()
{
Figuras *vect_figuras[4];
vect_figuras[0] = new Figuras();
vect_figuras[1] = new Circulo();
vect_figuras[2] = new Cuadrado();vect_figuras[3] = new OtraFigura();
for(int i = 0; i < 4; i++) {
vect_figuras[i]->pintar();
}
for (int i = 0; i < 4; i++) {
delete vect_figuras[i];
}
return 0;
}Si no utilizáramos la palabra clave virtual, el resultado sería diferente.
class Figuras
{
public:
void pintar() { cout << "Yo pinto todo. \n"; }
virtual ~Figuras() {}
};
Las Clasesabstractas y funciones virtuales puras
Una función virtual pura o método virtual puro es una función virtual que necesita ser implementada por una clase derivada que no sea abstracta. Las clases que...
Regístrate para leer el documento completo.