Hva er Inheritance Constructor i C++

Hva Er Inheritance Constructor I C



I C++, arv er et nøkkelbegrep i objektorientert programmering. En avledet klasse kan arve egenskapene og oppførselen til en basisklasse takket være den kraftige arv kapasitet i C++. En avledet klasse arver umiddelbart alle basisklassens medlemmer når den dannes. Det er nødvendig for den avledede klassekonstruktøren å initialisere basisklassemedlemmene også. I C++, arv er en kraftig funksjon som gjør det mulig for utviklere å gjenbruke kode, forbedre effektiviteten og organisere kode i logiske hierarkier.

Sammen med arv er konstruktører også viktige i C++. EN konstruktør er en unik medlemsfunksjon som lar deg initialisere objektets egenskaper. An Arvekonstruktør er en konstruktør som brukes til å initialisere både basisklassen og avledede klasseobjekter som den avledede klassen har arvet. De arvekonstruktør er ansvarlig for å initialisere både de nedarvede basisklassemedlemmene og de avledede klassemedlemmene. For å oppnå dette, påkaller konstruktøren konstruktøren av basisklassen, og sikrer at alle medlemmene av den avledede klassen er riktig initialisert, inkludert de som er arvet fra basisklassen.

Ved å påkalle basisklassens konstruktør og gi den de nødvendige parameterne, kan arvekonstruktør initialiserer medlemmene av basisklassen. Dette oppnås ved hjelp av 'grunnklasse(args)' initialiseringsliste i konstruktøren. Ytterligere instruksjoner spesifikt for den avledede klassen er gitt i konstruktøren.







Syntaksen for arve en klasse i C++ er:



klasse DerivedClass : accessSpecifier BaseClass {
// klassemedlemmer
} ;

Den nye klassen som dannes i dette tilfellet, 'DerivedClass', vil arve fra 'BaseClass'. Tilgangsnivået til de arvede medlemmene er spesifisert av ' accessSpecifier'. C++ bruker tre typer tilgangspesifikasjoner, nemlig 'offentlig privat', og 'beskyttet' . Ordet 'offentlig' indikerer at den avledede klassen har tilgang til basisklassens offentlige medlemmer. Den avledede klassen har ingen tilgang til medlemmene av basisklassen, ifølge 'privat' spesifiser. Den avledede klassen har tilgang til de beskyttede baseklassemedlemmene som kan arves av barneklassene deres, i henhold til 'beskyttet' spesifiser.



Eksempel på arv i C++

Følgende eksempel viser implementeringen av Arv i C++:





#include
ved hjelp av navneområde std ;

klasse Dyr {
offentlig :
tomrom spise ( ) {
cout << 'Jeg kan spise!' << endl ;
}
tomrom sove ( ) {
cout << 'Jeg kan sove!' << endl ;
}
} ;
klasse Katt : offentlig Dyr {
offentlig :
tomrom mjau ( ) {
cout << 'Jeg kan mjau!' << endl ;
}
} ;
int hoved- ( ) {
Katt kat1 ;
kat1. spise ( ) ;
kat1. sove ( ) ;
kat1. mjau ( ) ;

komme tilbake 0 ;
}

Den gitte koden definerer to klasser, 'Dyr' og 'Katt' , hvor 'Katt' er avledet fra 'Dyr' . Begge klassene har noen medlemsfunksjoner, som f.eks 'Spis sov' , og 'mjau' . Hovedfunksjonen lager et objekt i klassen 'Katt' og ringer til arvet funksjoner fra klassen 'Dyr' samt den spesifikke funksjonen til klassen 'Katt' , som er 'mjau' . Programmet sender ut teksten til konsollen, noe som indikerer at katten kan spise, sove og mjau.

Produksjon



Når en klasse er avledet, overføres alle basisklassens medlemsvariabler og medlemsfunksjoner til den avledede klassen. De arvet medlemmers tilgjengelighet i den avledede klassen bestemmes av tilgangsspesifikatoren. Den avledede klassen kan også erstatte nye funksjoner med de som allerede eksisterer. Den kan legge til nye implementeringer for basisklassens metoder og legge til nye medlemsfunksjoner og variabler.

Det er viktig å huske at arvekonstruktør må brukes til å eksplisitt kalle opp basisklassens konstruktør med de nødvendige parameterne hvis basisklassen har en standardkonstruktør eller hvis den ikke er tilgjengelig.

Konklusjon

Den sterke egenskapen til arv i C++ lar klasser gjenbruke kode ved å arve egenskaper og handlinger fra andre. En nyttig funksjon i C++-er arvekonstruktør lar avledede klasser arve egenskapene, metodene og datamedlemmene til en basisklasse. Med tillegg av en initialiseringsliste for basisklassekonstruktører, er den definert ved å bruke samme syntaks som en standardkonstruktør. C++-programmerere kan minimere kodeduplisering og forbedre kodestrukturen ved å bruke arvekonstruktør . For å lage komplekse klassehierarkier i objektorientert programmering er det et viktig verktøy.