Polimorfismo 03 - Funciones puramente virtuales y clases abstractas

Una función puramente virtual es una función en una clase base que obligatoriamente debe ser reimplementada/sobrecargada en todas sus clases derivadas cuyos objetos quieran invocar esa función.

Por ejemplo, B es una clase base que tiene una función puramente virtual llamada ayuda(). Si D quiere ser una clase derivada de la clase B obligatoriamente debe reimplementar la función ayuda(). De lo contrario, un objeto de clase D no puede invocar a ayuda() (pues ni siquiera su clase base la tiene implementada).

Vídeo

Analiza lo siguiente

A continuación un programa parecido al presentado en el video.

  1. Descomenta la última línea de main() y compila. Obtienes un error de compilación porque C++ permite crear objetos de una clase abstracta. Se pueden crear punteros de clase abstracta. Se pueden crear objetos de clases derivadas de clase abstracta. Pero NO se pueden crear objetos de clase abstracta.