Ce este moștenirea hibridă în C++? Sunt Tipuri Cu Exemple

Publicat: 2021-05-27

Folosim adesea termenul „Moștenire” într-un context de programare. Este o caracteristică practicată în programare pentru a face cea mai bună reutilizare a codurilor. Dacă vă amintiți conceptul de „IS-A” în OOP (Programare orientată pe obiecte), veți descoperi că se bazează pe caracteristica Moștenire. Implementarea moștenirilor vă va ajuta să obțineți idei avansate de proiecte în C++.

Cuprins

Ce este Moștenirea?

În procesul de moștenire, obiectele unei clase dobândesc proprietățile și comportamentul altei clase. Aici o nouă clasă este derivată din clasa de bază existentă. Clasa membru derivată este de obicei numită clasă copil și membru al clasei de bază a clasei părinte. După ce clasa copil este derivată, aceasta moștenește toate proprietățile și metodele din clasa părinte.

În plus, clasa copil poate avea proprietățile și metodele sale exclusive destinate unui scop. Caracteristicile suplimentare adăugate local unei clase existente nu vor afecta proprietățile pe care le-a moștenit de la clasa părinte. Astfel, noua clasă va avea caracteristici combinate ale ambelor clase.

Moștenirea în C++

Adesea, în realitate, un programator trebuie să dezvolte un obiect care trebuie să:
1) posedă toate calitățile părintelui său și, în plus,
2) în unele aspecte, persistența este deosebită.

Codarea unor astfel de proprietăți excepționale în clasa principală poate să nu fie neapărat practică și economică. În acest caz, o nouă clasă este derivată prin extinderea clasei de bază. De asemenea, derivând-o dintr-o altă clasă având calități suplimentare. În acest mod, puteți reutiliza, extinde sau modifica atributele și comportamentele care sunt definite în alte clase. Astfel, clasa copil derivată din mai multe clase oferă un obiect ușor de întreținut și de portat. Clasa derivată este clasa specializată pentru clasa de bază.

Din punct de vedere tehnic, cuvântul cheie „se extinde” este folosit pentru a moșteni o clasă. C++ folosește simbolul două puncte (" : ") pentru a moșteni dintr-o clasă.

Tipuri de moșteniri

Utilizarea unei combinații de moșteniri și implementare diferă pentru un scop în care sunt derivate clasele. Există diferite tipuri de moșteniri disponibile în C++, după cum sunt enumerate mai jos:

  • Moștenirea unică este locul în care o clasă derivată moștenește proprietăți și comportament de la o singură clasă de bază. Exemplu: Clasa A → Clasa B.
  • Moștenirea ierarhică este în cazul în care mai mult de o clasă derivată este creată dintr-o singură clasă de bază. Exemplu: Clasa A → Clasa B → Clasa C.
  • Moștenirea multiplă este pentru derivarea unei clase din mai multe clase de bază. Aici, obiectele copil create de programatori vor avea aspecte combinate ale caracteristicilor și caracteristicilor din mai multe clase părinte. Aceste obiecte își urmează ierarhiile claselor de bază.
  • Moștenirea pe mai multe niveluri este cazul în care o clasă copil este derivată dintr-o altă clasă derivată. Această caracteristică prezintă aspecte combinate ale mai multor clase și urmează ierarhiile acestora.
  • Moștenirea hibridă este o caracteristică eterogenă a utilizării moștenirilor multiple. Aici o clasă copil este derivată dintr-una sau mai multe combinații de moșteniri unice, ierarhice și pe mai multe niveluri. Această moștenire este adoptată pentru programele de amestecare a diferitelor tipuri de moștenire; de exemplu, atunci când amestecați o singură moștenire cu moșteniri multiple sau poate o situație în care moșteniri multiple sunt amestecate într-un singur program.

Exemplu simplu

Aici Clasa B și Clasa C ambele sunt derivate din clasa de bază, Clasa A.

O clasificare ierarhică a Mașinilor arată două clase. Atât „Mașini pe benzină” cât și „Mașini electrice” sunt derivate din clasa de bază „Mașini”.

Moștenirea hibridă în C++

Ar putea exista situații în care trebuie să aplicăm două sau mai multe tipuri de moștenire combinate pentru a proiecta un program. Când un program implică mai multe tipuri de moștenire, se numește moștenire hibridă.

Moștenirea hibridă este o combinație de moștenire simplă, multiplă și moștenire ierarhică. De obicei, în moștenirile multiple, o clasă este derivată din două clase în care una dintre clasele părinte este, de asemenea, o clasă derivată și nu o clasă de bază.

Moștenirea hibridă în C++ este moștenirea în care o clasă este derivată din mai multe forme sau combinații ale oricărei moșteniri. Moștenirea hibridă în C++ este denumită și moștenire multipath, unde o clasă derivată poate moșteni proprietățile clasei de bază în diferite căi. Uneori, numită și moștenire multipath. De exemplu, poate fi realizat cu o combinație atât de moștenire pe mai multe niveluri, cât și de moștenire ierarhică.

Pe scurt, moștenirea hibridă este o combinație de două sau mai multe tipuri de moștenire. De exemplu, prin implementarea moștenirilor cu un singur nivel și pe mai multe niveluri în același program.

Diagrama bloc a moștenirii hibride

Diagrama reprezintă combinația hibridă a două moșteniri; moştenirea unică şi moştenirile multiple. Aici, în moștenirea unică, clasa B este derivată din clasa A. În mod similar, în moștenirile multiple, clasa D este moștenită din mai multe clase. Aici clasa B și clasa C. Deci, un amestec de moștenire unică și moșteniri multiple formează o moștenire hibridă.

Moștenirea hibridă este aplicabilă în scenariile în care ni se cere să aplicăm mai mult de o moștenire într-un program.

Sintaxa moștenirii hibride în C++

O sintaxă și semantică tipice pentru moștenirea hibridă în C++ vor urma, după cum este ilustrat mai jos:

Exemple de moștenire hibridă în C++

Exemplul 1: Moștenire unică + multiplă

Să vedem cum sunt implementate moștenirile unice și multiple.

Fiecare bloc din această diagramă reprezintă o clasă, iar săgeata corespunzătoare moștenirea unei clase.

Exemplul 2: Moștenire unică + pe mai multe niveluri

Putem implementa și alte tipuri de moștenire pentru a constitui moșteniri hibride.

Să luăm în considerare un exemplu în timp real .

Obținem o subclasă de mașini din clasa Vehicule. O altă clasă caracterizează Racing. Când derivăm o entitate finală, atât din clasa Mașini, cât și din clasa Curse, va oferi o ieșire combinată. Acest derivat este Ferrari – mașina de curse.

Iată un program simplu pentru a ilustra conceptul de moștenire hibridă în C++ .

Codul eșantionului

Ieșirea

Învață Cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Sper că acest articol v-a ajutat să înțelegeți conceptul și tipurile de moștenire hibridă în C++ . Elevii din fluxul de calculatoare și programe legate de calcul își pot îmbunătăți abilitățile și credibilitatea tehnică, cum ar fi conceptele POO. upGrad oferă resurse și o bază de cunoștințe pentru a încuraja astfel de profesioniști să devină experti în programare și să concureze pe piața industriei. La upGrad, aveți, de asemenea, o oportunitate de a explora rețelele profesionale și dezvoltarea abilităților.

Sperăm că veți avea o oportunitate excelentă de învățare în executarea acestor proiecte C++. Dacă sunteți interesat să aflați mai multe și aveți nevoie de mentorat de la experții din industrie, consultați programul Executive PG de la upGrad și IIIT Banglore în Dezvoltare software Full-Stack .

Ce este moștenirea în programarea orientată pe obiecte?

Moștenirea este un mecanism de reutilizare a codului și ajută la simularea lumii reale. Extinde conceptul de abstractizare a datelor în POO. Este procesul prin care o clasă dobândește proprietățile altei clase. Este fundamental în OOP ca o clasă să poată fi definită numai în termenii unei alte clase. Acest lucru se datorează conceptului de abstractizare. Moștenirea este un mecanism care face noi clase de obiecte în aceeași ierarhie de clasă ca și alte obiecte. Principalul beneficiu al moștenirii este reutilizarea codului. Este o modalitate de a reutiliza codul. Dacă aveți o clasă și face o anumită treabă, o puteți folosi și pentru un alt loc de muncă. Spuneți doar că o mașină și un camion fac aceeași muncă, așa că puteți folosi același cod pentru a le conduce.

Care sunt cele 3 domenii de moștenire în C++?

Domeniile de moștenire în C++ sunt private, protejate și publice. Moștenirea privată este cazul în care o clasă este moștenită de la o altă clasă, dar clasa derivată nu poate fi accesată în afara clasei. Aceste tipuri de moștenire pot fi utilizate numai atunci când clasa de bază nu este menită să fie accesată în afara clasei. Moștenirea protejată este utilizată atunci când clasa de bază nu este menită să fie accesată în afara clasei și este menită să acceseze în afara clasei. Moștenirea publică este utilizată atunci când clasa de bază este menită să fie accesată în afara clasei.

Ce este moștenirea multiplă în C++?

Moștenirea multiplă este capacitatea de a deriva o clasă din mai multe clase. Această caracteristică nu este disponibilă în C. Aceasta este una dintre cele mai importante caracteristici ale C++ care acceptă programarea orientată pe obiecte. Implementarea moștenirii multiple în C++ se bazează pe conceptul de clase de moștenire. Moștenirea multiplă este un mecanism care acceptă modelul de programare orientat pe obiecte care poate fi folosit pentru a rezolva unele probleme, cum ar fi reutilizarea comportamentală și reutilizarea codului. Reutilizarea codului a fost întotdeauna o problemă în C++, deoarece C++ are doar suport pentru moștenire unică. Moștenirea multiplă se realizează prin combinarea mai multor interfețe într-un obiect.