Qu'est-ce que l'héritage hybride en C++ ? C'est des types avec des exemples
Publié: 2021-05-27Nous utilisons souvent le terme « Héritage » dans un contexte de programmation. C'est une fonctionnalité pratiquée en programmation pour faire la meilleure réutilisation des codes. Si vous vous souvenez du concept de "IS-A" dans la POO (programmation orientée objet), vous constaterez qu'il est basé sur la fonction d'héritage. L'implémentation des héritages vous aidera à acquérir des idées de projet avancées en C++.
Table des matières
Qu'est-ce que l'héritage ?
Dans le processus d'héritage, les objets d'une classe acquièrent les propriétés et le comportement d'une autre classe. Ici, une nouvelle classe est dérivée de la classe de base existante. La classe membre dérivée est généralement appelée classe enfant et membre de la classe de base de la classe parent. Une fois la classe enfant dérivée, elle hérite de toutes les propriétés et méthodes de la classe parent.
De plus, la classe enfant peut avoir ses propriétés et méthodes exclusives destinées à un but. Les fonctionnalités supplémentaires ajoutées localement à une classe existante n'affecteront pas les propriétés héritées de la classe parente. Ainsi, la nouvelle classe aura des caractéristiques combinées des deux classes.
Héritage en C++
Souvent, en réalité, un programmeur a besoin de développer un objet qui doit :
1) posséder toutes les qualités de son parent, et en plus,
2) à certains égards, la persévérance est particulière.
Le codage de telles propriétés exceptionnelles dans la classe principale n'est pas nécessairement pratique et économique. Dans ce cas, une nouvelle classe est dérivée en étendant la classe de base. Aussi, le dériver d'une autre classe ayant des qualités supplémentaires. De cette manière, vous pouvez réutiliser, étendre ou modifier les attributs et les comportements qui sont définis dans d'autres classes. Ainsi, la classe enfant dérivée de plusieurs classes donne un objet facile à maintenir et à porter. La classe dérivée est la classe spécialisée de la classe de base.
Techniquement, le mot clé "extends" est utilisé pour hériter d'une classe. C++ utilise le symbole deux-points (" : ") pour hériter d'une classe.
Types d'héritages
L'utilisation d'une combinaison d'héritages et d'implémentation diffère dans un but dont les classes sont dérivées. Il existe différents types d'héritages disponibles en C++, comme indiqué ci-dessous :
- L'héritage unique est l'endroit où une classe dérivée hérite des propriétés et du comportement d'une seule classe de base. Exemple : Classe A → Classe B.
- L'héritage hiérarchique est l'endroit où plusieurs classes dérivées sont créées à partir d'une seule classe de base. Exemple : Classe A → Classe B → Classe C.
- L'héritage multiple permet de dériver une classe à partir de plusieurs classes de base. Ici, les objets enfants créés par les programmeurs auront des aspects combinés de caractéristiques et de fonctionnalités de plusieurs classes parentes. Ces objets suivent leurs hiérarchies de classes de base.
- L'héritage à plusieurs niveaux est l'endroit où une classe enfant est dérivée d'une autre classe dérivée. Cette fonctionnalité porte les aspects combinés de plusieurs classes et suit leurs hiérarchies.
- L'héritage hybride est une caractéristique hétérogène de l'utilisation d'héritages multiples. Ici, une classe enfant est dérivée d'une ou plusieurs combinaisons d'héritages simples, hiérarchiques et multiniveaux. Cet héritage est adopté pour les programmes afin de mélanger différents types d'héritage ; par exemple, lors du mélange d'un seul héritage avec plusieurs héritages ou peut-être d'une situation où plusieurs héritages sont mélangés dans un même programme.
Exemple simple
Ici, la classe B et la classe C sont toutes deux dérivées de la classe de base, la classe A.
Une classification hiérarchique des voitures montre deux classes. Les « voitures à essence » et les « voitures électriques » sont toutes deux dérivées des voitures de classe de base.
Héritage hybride en C++
Il peut y avoir des situations où nous devons appliquer deux ou plusieurs types d'héritage combinés pour concevoir un programme. Lorsqu'un programme implique plus d'un type d'héritage, on parle d' héritage hybride.
L'héritage hybride est une combinaison d'héritage simple, multiple et d'héritage hiérarchique. Habituellement, dans les héritages multiples, une classe est dérivée de deux classes où l'une des classes parentes est également une classe dérivée et non une classe de base.
L'héritage hybride en C++ est l'héritage dans lequel une classe est dérivée de plusieurs formes ou combinaisons de n'importe quel héritage. L' héritage hybride en C++ est également appelé héritage multi-chemins, où une classe dérivée peut hériter des propriétés de la classe de base dans différents chemins. Parfois aussi appelé héritage multi-chemins. Par exemple, cela peut être réalisé avec une combinaison d'héritage multiniveau et hiérarchique.
En bref, l'héritage hybride est une combinaison de deux ou plusieurs types d'héritage. Par exemple, en implémentant des héritages à un et plusieurs niveaux dans le même programme.
Schéma fonctionnel de l'héritage hybride
Le schéma représente la combinaison hybride de deux héritages ; l'héritage unique et les héritages multiples. Ici, en héritage simple, la classe B est dérivée de la classe A . De même, dans les héritages multiples, la classe D est héritée de plusieurs classes. Ici la classe B et la classe C. Ainsi, un mélange d'héritage unique et d'héritages multiples forme un héritage hybride.
L'héritage hybride est applicable dans les scénarios où nous sommes tenus d'appliquer plus d'un héritage dans un programme.
Syntaxe de l'héritage hybride en C++
Une syntaxe et une sémantique typiques pour l' héritage hybride en C++ suivront comme illustré ci-dessous :
Exemples d'héritage hybride en C++
Exemple 1 : Héritage unique + multiple
Voyons comment les héritages simples et multiples sont implémentés.
Chaque bloc de ce diagramme représente une classe, et la flèche correspondante l'héritage d'une classe.
Exemple 2 : Héritage à un niveau + à plusieurs niveaux
On peut également mettre en œuvre d'autres types d'héritage pour constituer des héritages hybrides.
Prenons un exemple en temps réel .
Nous dérivons une sous-classe de voiture de la classe Vehicle. Une autre classe caractérise le Racing. Lorsque nous dérivons une entité finale, à la fois de la classe Car et de la classe Racing, cela donnera une sortie combinée. Ce dérivé est Ferrari – la voiture de course.
Voici un programme simple pour illustrer le concept d' héritage hybride en C++ .
L'exemple de code
Le résultat
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Conclusion
J'espère que cet article vous a aidé à comprendre le concept et les types d' héritage hybride en C++ . Les étudiants dans le flux de programmes informatiques et liés à l'informatique peuvent améliorer leurs compétences et leur crédibilité technique, telles que les concepts POO. upGrad fournit des ressources et une base de connaissances pour encourager ces professionnels à acquérir une expertise en programmation et à être compétitifs sur le marché de l'industrie. Chez upGrad, vous avez également la possibilité d'explorer le réseautage professionnel et le développement des compétences.
Nous espérons que vous aurez une excellente opportunité d'apprentissage dans l'exécution de ces projets C++. Si vous souhaitez en savoir plus et avez besoin du mentorat d'experts de l'industrie, consultez le programme Executive PG de upGrad & IIIT Banglore en développement de logiciels Full-Stack .
Qu'est-ce que l'héritage dans la programmation orientée objet ?
L'héritage est un mécanisme de réutilisation du code et il aide à simuler le monde réel. Il étend le concept d'abstraction de données en POO. C'est le processus par lequel une classe acquiert les propriétés d'une autre classe. Il est fondamental en POO qu'une classe ne puisse être définie qu'en termes d'une autre classe. C'est à cause du concept d'abstraction. L'héritage est un mécanisme qui crée de nouvelles classes d'objets dans la même hiérarchie de classes que les autres objets. Le principal avantage de l'héritage est la réutilisation du code. C'est une façon de réutiliser le code. Si vous avez une classe et qu'elle effectue un travail particulier, vous pouvez également l'utiliser pour un autre travail. Disons simplement qu'une voiture et un camion font le même travail, vous pouvez donc utiliser le même code pour les conduire.
Quelles sont les 3 portées d'héritage en C++ ?
Les étendues d'héritage en C++ sont privées, protégées et publiques. L'héritage privé est l'endroit où une classe est héritée d'une autre classe mais la classe dérivée n'est pas accessible en dehors de la classe. Ces types d'héritage ne peuvent être utilisés que lorsque la classe de base n'est pas destinée à être accessible en dehors de la classe. L'héritage protégé est utilisé lorsque la classe de base n'est pas destinée à être accessible en dehors de la classe et est destinée à être accessible en dehors de la classe. L'héritage public est utilisé lorsque la classe de base est destinée à être accessible en dehors de la classe.
Qu'est-ce que l'héritage multiple en C++ ?
L'héritage multiple est la possibilité de dériver une classe de plusieurs classes. Cette fonctionnalité n'est pas disponible en C. C'est l'une des fonctionnalités les plus importantes de C++ qui prend en charge la programmation orientée objet. L'implémentation de l'héritage multiple en C++ est basée sur le concept des classes d'héritage. L'héritage multiple est un mécanisme qui prend en charge le modèle de programmation orienté objet qui peut être utilisé pour résoudre certains problèmes, tels que la réutilisation comportementale et la réutilisation du code. La réutilisation du code a toujours été un problème en C++, car C++ ne prend en charge qu'un seul héritage. L'héritage multiple est obtenu en combinant plusieurs interfaces dans un objet.