¿ Porque C + + utiliza una programación orientada a objetos , o el modelo de programación orientada a objetos , como parte de su diseño , los programadores deben familiarizarse con algunos conceptos de programación orientada a objetos , 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 función de objeto, el destructor virtual, para su uso requiere que un programador entiende 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
A fuerza de programación orientada a objetos radica en el concepto de herencia . Cuando un programador desea ampliar la funcionalidad de un objeto, o si se comparte la mayor parte del objeto funcional de otro objeto con diferencias de menor importancia , el programador puede derivar una clase de otra . Cuando una clase se deriva de otra clase ( la clase "base" ) , tiene acceso a las variables y funciones definidas en la primera clase . En este ejemplo , la clase "bola " se deriva de la clase "esfera " y extiende su funcionalidad
clase
Sphere {
pública : .
GetRadius int ( ) {
retorno r ;
}
int r ;
}
bola clase
: Esfera pública {public
:
de color cadena
;
}
virtuales funciones
Dado que una clase derivada tiene acceso a todas las funciones de la clase base , se puede utilizar como un 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 adaptarse a sus necesidades . Además , una clase base puede 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 a las clases derivadas . Una función en una clase base que no hace nada , en vez de salir una clase derivada para ponerlo en práctica, se denomina función "virtual " .
Destructores
Integral al 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 clase primera inicializarse ( lo que los valores de datos predeterminados 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 primero constructor y destructor funciones
clase
Sphere {
Esfera ( ) . //Constructor
~ Esfera ( ) //destructor
}
Virtual destructores
Debido a la forma en las clases y los destructores de trabajo, cuando una clase derivada se borra de la memoria , tanto en el destructor de la derivada clase y el destructor de la clase base debe ser llamada. Para lograr esto , los programadores crean destructores virtuales de clases 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
clase
Esfera {
Esfera ( ) ; .
Virtual de ~ Esfera ( ) { } //la palabra "virtual " se refiere a una clase
}
bola virtual de clase : Esfera pública {
bola
();
~ bola (): //Eliminación de un objeto " bola" a llamar a este destructor y la esfera destructor