Comment le travail de l'héritage fait en C ++?

jenheritance En C ++ la capacité d'une classe d'hériter des capacités ou des propriétés d'une autre classe. L'héritage est un concept commun. Vous héritez certaines propriétés de la classe Humain, comme ma capacité à converser (plus ou moins) intelligemment et ma dépendance à l'air, l'eau, et de la nourriture à base de glucides (un peu trop dépendant de ce dernier).

Ces propriétés ne sont pas uniques aux humains. La classe Human hérite des dépendances sur l'air, l'eau, la nourriture et de la classe Mammifère, qui a hérité de la classe Animal.

La capacité de passer vers le bas propriétés est un puissant. Il vous permet de décrire les choses d'une manière économique. Par exemple, si quelqu'un demande, “ Ce qui est un canard ”?; Tu peux dire, “ Il est un oiseau qui va charlatan ”.

Malgré ce que vous pouvez penser, cette réponse transmet une quantité considérable d'informations. Il sait ce qui est un oiseau, et maintenant il connaît tous les mêmes choses sur un canard ainsi propriété supplémentaire du canard de “. Quackness ”




(OO) langues orientées objet expriment cette relation d'héritage en permettant une classe d'hériter d'un autre. OO langues peuvent générer un modèle qui est plus proche du monde réel (rappelez-vous que dans le monde réel des choses!) Que le modèle généré par les langues qui ne supporte pas l'héritage.

C ++ permet une classe à une autre classe d'hériter comme suit:

classe Étudiant {} - classe GraduateStudent: Student publique {} -

Voici un Étudiant diplomé hérite de tous les membres de Étudiant. Ainsi, un Étudiant diplomé Is_a Étudiant. (La capitalisation des is_a souligne l'importance de cette relation.) Bien sûr, Étudiant diplomé peuvent également contenir d'autres membres qui sont uniques à un Étudiant diplomé.

Héritage a été introduit dans C ++ pour plusieurs raisons. Bien sûr, la principale raison en est la capacité d'exprimer la relation d'héritage. Une raison mineure est de réduire la quantité de dactylographie.

Supposons que vous avez une classe Étudiant, et vous êtes invité à ajouter une nouvelle classe appelée Étudiant diplomé. L'héritage peut réduire considérablement le nombre de choses que vous avez à mettre dans la classe. Tout ce que vous avez vraiment besoin dans la classe Étudiant diplomé sont des choses qui décrivent les différences entre les élèves et les étudiants des cycles supérieurs.

Un autre effet secondaire a à voir avec la modification du logiciel. Supposons que vous héritez d'une certaine classe existante. Plus tard, vous constatez que la classe de base ne fait pas exactement ce qui doit la sous-classe. Ou peut-être la classe a un bug.

Modification de la classe de base pourrait casser autre code qui utilise cette classe de base. Création et utilisation d'une nouvelle sous-classe qui surcharge la fonction incorrecte avec une version corrigée résout votre problème sans causer de quelqu'un d'autre d'autres problèmes.


» » » » Comment le travail de l'héritage fait en C ++?