Función virtual

Si no es virtual, se llamará a la función de la clase base.

Las clases que contienen métodos virtuales puros son denominadas "abstractas".

Los métodos virtuales puros normalmente tienen una declaración (cabecera) pero no tienen definición (implementación).

Una clase abstracta sirviendo como interfaz contiene sólo funciones virtuales puras, y ningún miembro de datos (variables, constantes, etc.) ni métodos ordinarios.

El uso de clases puramente abstractas como interfaces funciona en C++ ya que este soporta herencia múltiple.

Sin embargo, algunos lenguajes orientados a objetos permiten implementar un método destructor personalizado si se desea.