? Parce que le C + + utilise une programmation orientée objet , ou modèle objet, dans le cadre de sa conception , les programmeurs doivent se familiariser avec certains concepts de programmation orientée objet tels que les classes et les objets. Quand un programmeur souhaite développer un objet pour une utilisation dans le code, elle doit concevoir la fonctionnalité de l'objet dans une «classe». Une classe définit les données et les fonctions d'un objet peut utiliser. Un type spécifique de la fonction de l'objet, le destructeur virtuel , pour son utilisation nécessite qu'un programmeur comprendre le rôle des destructeurs dans les classes , le concept d' héritage de classe , et l'utilisation des fonctions virtuelles en programmation C + + . Héritage
A force de la POO réside dans le concept d'héritage . Quand un programmeur souhaite étendre le fonctionnel d'un objet, ou si l'on partage une grande partie de l' objet fonctionnel d'un autre objet avec des différences mineures , le programmeur peut dériver une classe à partir de l'autre. Quand une classe dérive d'une autre classe (la classe " de base " ), il a accès aux variables et fonctions définies dans la première classe . Dans cet exemple , la classe " balle" dérive de la classe «sphère» et étend ses fonctionnalités
classe Sphere
{
publique : .
Int getRadius () {
retour r ;
}
int r ;
}
classe balle: sphère publique {
publique : < br > Couleur de la chaîne de
;
}
fonctions virtuelles
Depuis une classe dérivée a accès à toutes les fonctions de la classe de base , il peut les utiliser comme n'importe quel moment comme si elle agissait en tant que classe de base. Cependant, la classe dérivée pourrait plutôt modifier une fonction dans la classe de base pour répondre à ses besoins. Par ailleurs, une classe de base peut servir de modèle pour la classe dérivée. Dans ce cas, la classe de base nommera fonctions sans définir ce qu'ils font, plutôt que de laisser aux classes dérivées . Une fonction dans une classe de base qui ne fait rien , laissant la place une classe dérivée pour la mettre en oeuvre , est appelée fonction «virtuelle» .
Destructeurs
Integral de s'opposer conception est la mise en œuvre de «constructeur» et fonctions de " destructeur". Une fonction constructeur d'une classe définit comment un objet créé à partir de la classe premier s'initialiser ( quelles valeurs de données par défaut , il contiendra , par exemple ) . Le destructeur , en revanche, détermine ce qui se passe quand un objet est supprimé de la mémoire ( comment l'information qu'il contient est supprimé, par exemple ) . Cet exemple de code montre comment une classe définit premier constructeur et des destructeurs
classe
Sphere {
Sphere (); . //Constructeur
~ Sphere (); //destructeur Photos
}
Virtual destructeurs
en raison de la façon dont les classes et les destructeurs travail, quand une classe dérivée est supprimé de la mémoire , à la fois le destructeur de la dérivée classe et le destructeur de la classe de base doivent être appelés . Pour ce faire, les programmeurs de créer des destructeurs virtuels dans les classes de base , que les classes dérivées peuvent définir . Cet exemple montre une classe de base avec un destructeur virtuel et une classe dérivée avec son propre destructeur
classe
Sphere {
Sphère (); .
Virtual ~ Sphere () { } //le mot «virtuel» désigne une classe virtuelle
}
classe balle: sphère publique {
ball ( ) ;
boule de ~ (): //suppression d'un objet " balle" appellera cette destructeur et la sphère destructeur