¿Qué es una clase virtual?

Una clase virtual es una clase que se asigna solo una vez en la memoria, de modo que los niños de esa clase usan solo la única copia de esa clase principal que se establece en la memoria. Una clase es un grupo de objetos que comparten rasgos o atributos comunes. Hacer una clase virtual ofrece lenguajes de programación orientados a objetos la capacidad de usar herencia múltiple cuando las clases de padres de segunda generación se derivan de clases de base ancestrales comunes. Dependiendo del lenguaje de programación de computadoras mencionado, la palabra clave "virtual", la palabra clave similar, o la sintaxis y la semántica de una clase se utilizan para implicar que una clase en particular debe considerarse virtual.

No todos todos los lenguajes de programación orientados a objetos permiten múltiples herencias, que es cuando una clase infantil se puede derivar de las clases parentales múltiples al mismo tiempo. En un lenguaje de programación como C ++, una clase puede heredar todos los datos de los miembros y las funciones de los miembros de ambas clases de padres a la vez y tener acceso a ambos conjuntos de parENT DATA Y FUNCIONES. Otros idiomas que admiten la herencia múltiple incluyen Perl, Python, Tcl y Eiffel.

Un problema ocurre en jerarquías de herencia múltiple cuando dos o más clases de padres solucionadas para crear una clase infantil se derivan originalmente de una sola o la misma clase de abuelos. Esto se llama el problema del diamante, el nombre derivado de cómo se vería la jerarquía en esta situación. Cuando un programa de compilador intenta instanciar una clase, como una clase de nieto hecha de dos clases de padres con un abuelo común, se hacen dos copias del abuelo en la memoria, una para cada padre.

Debido a la ambigüedad causada por múltiples copias del mismo abuelo en la memoria, el compilador no puede determinar qué copia del abuelo debe usar el nieto para acceder a los datos o funciones de los abuelos. Para remediar esta situación, en C ++ el abuelo se convierte en una virtudClase ual al declarar a los padres. Esto hace que el compilador solo haga una copia del abuelo en la memoria que comparten ambos padres. Una vez que el abuelo se ha convertido en una clase virtual, el compilador no tiene problemas para decidir cómo el nieto debe acceder al abuelo porque solo hay una copia del abuelo.

Se debe tener mucho cuidado al estructurar jerarquías de clase, especialmente cuando se incluirán o se convertirán en la base de jerarquías mucho más grandes en el futuro. La utilización adecuada de una clase virtual otorga a las jerarquías de clase una mayor latitud en el desarrollo; Sin embargo, tienen el potencial de causar errores que son difíciles de localizar. El estudio de los principios de ingeniería de programación de computadoras sólidas ayudará a garantizar que no ocurran efectos secundarios inesperados de la organización inadecuada del programa.

.

OTROS IDIOMAS