C ++

Función virtual C ++

Función virtual C ++
En este artículo, vamos a discutir la función virtual en el lenguaje de programación C ++. Se utiliza una función virtual en C ++ para lograr el polimorfismo en tiempo de ejecución / dinámico. Veremos varios ejemplos para entender el concepto de función virtual en C++.

Una función virtual es una función miembro que se define en la clase base / clase principal y se redefine en la clase derivada. La función virtual permite llamar a la versión de la clase derivada de la función utilizando la referencia o el puntero a la clase base.

Veamos algunos ejemplos para entender el concepto de función virtual.

En el primer ejemplo, veremos el comportamiento de la función no virtual, y luego, en el segundo ejemplo, explicaremos el comportamiento de una función virtual.

Ejemplo 1

En el siguiente código de ejemplo, tenemos dos clases: clase base y clase derivada.

La clase base tiene una función miembro, yo.mi., monitor(). La clase derivada se hereda de la clase base y se redefine la función display ().

Luego, hemos declarado un puntero al tipo de clase base y le hemos asignado un objeto de la clase derivada. Entonces, cuando llamamos a la función display () usando el puntero de tipo de clase base, se llamará a la función de clase base. Puedes ver la salida a continuación.

Pero, en tales casos, C ++ proporciona una forma de llamar a la función de clase derivada declarando la función de clase base como virtual. Veremos otro ejemplo para entender esto.

#incluir
usando el espacio de nombres std;
clase Base_Class

público:
pantalla vacía ()

cout << "I am in Base class" << endl;

;
clase Derived_Class: public Base_Class

público:
pantalla vacía ()

cout << "I am in Derived class" return 0;

Ejemplo 2

En este ejemplo, hemos definido la función display () como una función virtual en la clase base. La única diferencia con el programa anterior es que hemos agregado una palabra clave virtual delante de "void display ()" en la clase base.

Ahora, si ve la salida, imprime, "Estoy en la clase derivada", lo que indica que la función de la clase derivada se llama.

La palabra clave virtual (función virtual) en la clase base es responsable de garantizar que se llame a la función correcta para un objeto.

#incluir
usando el espacio de nombres std;
clase Base_Class

público:
pantalla de vacío virtual ()

cout << "I am in Base class" << endl;

;
clase Derived_Class: public Base_Class

público:
pantalla vacía ()

cout << "I am in Derived class" return 0;

Ejemplo 3

Este es otro ejemplo de función virtual. Como puede ver en el programa a continuación, hemos definido una clase base, yo.mi., Animal. Hay dos clases derivadas: perro y vaca. Hemos definido la función eat () como virtual en la clase base, i.mi., Animal. Luego, hemos redefinido la función eat () en ambas clases derivadas, Dog y Cow.  En la función main (), tenemos un puntero de la clase base, i.mi., Animal, y luego adjuntó la clase derivada, Perro. Entonces, cuando llamamos a la función eat () usando el puntero de clase base, podemos invocar la versión de clase derivada de la función eat (), i.mi., la función eat () de la clase Dog. De manera similar, cuando adjuntamos el objeto de la clase Cow, podemos invocar la versión de la clase derivada de la función eat (), i.mi., la función eat () de la clase Cow. Puede ver claramente este comportamiento en la salida a continuación. 

#incluir
usando el espacio de nombres std;
clase animal

público:
comer vacío virtual ()

cout << "Animal - base class - undefined eating behavior." << endl;

;
clase Perro: Animal público

público:
vacío comer ()

cout << "Dog - eat non-veg!" << endl;

;
clase vaca: animal público

público:
vacío comer ()

cout << "Cow - eat veg!" a_ptr = nueva vaca ();
a_ptr-> comer ();
return 0;

Conclusión

En este artículo, he explicado el concepto de función virtual en C++. C ++ admite diferentes tipos de polimorfismo: polimorfismo estático y polimorfismo dinámico. Con la ayuda de una función virtual, podemos lograr el polimorfismo en tiempo de ejecución / dinámico. En este artículo, solo hemos analizado el concepto de función virtual y cómo lograr el polimorfismo en tiempo de ejecución. He explicado tres ejemplos de trabajo para explicar la función virtual.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...