Funciones virtuales puras y clases abstractas.
Una función virtual pura es una función virtual sin cuerpo de función. ¿Qué significa no tener un cuerpo funcional? Esta es la función definida así:
nombre de la función de valor de retorno virtual (parámetro formal) = 0;
Como puede ver, la definición de virtual y función virtual es la misma antes, con un =0 agregado al final. Indica que no hay cuerpo de función, esta es una función virtual pura . Una clase que contiene funciones virtuales puras es una clase abstracta . Una clase abstracta tiene al menos una función virtual pura.
La existencia de clases abstractas es proporcionar una interfaz unificada y altamente abstracta para el mundo exterior y luego utilizar sus diferentes métodos a través de características polimórficas. Esta es una de las ideas centrales del diseño orientado a objetos y la ingeniería de software de C ++.
Las características de las clases abstractas se resumen a continuación:
1. Una clase abstracta no puede crear una instancia de un objeto. Solo se puede usar como clase base para permitir que las clases derivadas completen las funciones virtuales puras que contiene y luego crear una instancia y usarla.
2. La clase abstracta derivada aún puede completar de manera incompleta las funciones virtuales puras en la clase base y continuar derivando como una clase abstracta. Hasta que se dé la definición de todas las funciones virtuales puras, se convierte en una clase concreta y no se puede crear una instancia del objeto.
3. Debido a que las clases abstractas son abstractas y no pueden incorporarse, no pueden usarse como tipos de parámetros, valores de retorno o tipos de conversión.
4. Continuando con el tercer elemento, las clases abstractas pueden definir un puntero o tipo de referencia que apunte a su clase derivada para lograr características polimórficas.