Tecnología

Inicio

¿Qué es un destructor virtual en C?

Debido a que C ++ utiliza una programación orientada a objetos, o el modelo OO, como parte de su diseño, los programadores deben familiarizarse con algunos conceptos de POO, tales como clases y objetos. Cuando un programador desea desarrollar un objeto para su uso en el código, se debe diseñar la funcionalidad del objeto en una "clase". Una clase define los datos y funciones que un objeto puede utilizar. Un tipo específico de la función objetivo, el destructor virtual, para su uso requiere que un programador entender el papel de los destructores de las clases, el concepto de herencia de clases, y el uso de funciones virtuales en C ++ de programación.

Herencia

Un punto fuerte de programación orientada a objetos radica en el concepto de herencia. Cuando un programador desea extender el funcionalmente de un objeto, o si las acciones de un objeto mucho de la funcionalmente de otro objeto con sólo pequeñas diferencias, el programador puede derivar una clase de otra. Cuando una clase deriva de otra (la clase "base") de clase, tiene acceso a las variables y las funciones definidas en la primera clase. En este ejemplo, la clase de "bola" se deriva de la clase "esfera" y extiende su funcionalidad.

Esfera de clase {

público:

int getRadius () {

r retorno;

}

int r;

}

Bola de clase: Esfera pública {

público:

String color;

}

Funciones virtuales

Desde una clase derivada tiene acceso a todas las funciones de la clase base, se puede utilizar como cualquier momento como si estuviera actuando como clase base. Sin embargo, la clase derivada puede modificar en lugar de una función en la clase base para que se adapte a sus necesidades. Además, una clase base podría servir como una plantilla para la clase derivada. En este caso, la clase base nombrará a las funciones sin la definición de lo que hacen, en lugar de dejar que las clases derivadas. Una función en una clase base que no hace nada, en vez de dejar una clase derivada para ponerlo en práctica, se denomina función "virtual".

Los destructores

Integrante de objeto de diseño es la implementación de las funciones de "destructor" "constructor" y. Una función constructora para una clase define cómo un objeto creado a partir de la primera clase se inicializará (datos lo valores por defecto, que contendrá, por ejemplo). El destructor, por el contrario, determina lo que ocurre cuando un objeto se elimina de la memoria (cómo se elimina la información que contiene, por ejemplo). Este código de ejemplo muestra cómo una clase define las funciones de primer constructor y el destructor.

Esfera de clase {

Esfera(); //constructor

~ Esfera (); //incinerador de basuras

}

Los destructores virtuales

Debido a la forma en clases y destructores de trabajo, cuando se elimina una clase derivada de la memoria, tanto el destructor de la clase derivada y el destructor de la clase base deben ser llamados. Para lograr esto, los programadores crean destructores virtuales en clases de base, que las clases derivadas pueden definir. Este ejemplo muestra una clase base con un destructor virtual y una clase derivada con su propio destructor.

Esfera de clase {

Esfera();

~ Esfera virtual () {}; // La palabra clave "virtual" se refiere a una clase virtual

}

Bola de clase: Esfera pública {

Pelota();

~ Ball (): // eliminación de una "bola" objeto llamará a este destructor y el destructor Esfera