Kas yra paveldėjimo konstruktorius C++

Kas Yra Paveldejimo Konstruktorius C



C++ kalboje, paveldėjimo yra pagrindinė objektinio programavimo sąvoka. Dėl galingųjų išvestinė klasė gali paveldėti bazinės klasės bruožus ir elgesį paveldėjimo gebėjimas C++. Išvestinė klasė iš karto paveldi visus bazinės klasės narius, kai ją sudaro. Būtina, kad išvestinės klasės konstruktorius inicijuotų ir bazinės klasės narius. C++ kalboje, paveldėjimo yra galinga funkcija, leidžianti kūrėjams pakartotinai naudoti kodą, pagerinti efektyvumą ir suskirstyti kodą į logines hierarchijas.

Be paveldėjimo, konstruktoriai taip pat yra svarbūs C++. A konstruktorius yra unikali nario funkcija, leidžianti inicijuoti objekto savybes. An Paveldėjimo konstruktorius yra konstruktorius, naudojamas inicijuoti ir bazinės klasės, ir išvestinių klasių objektus, kuriuos išvestinė klasė paveldėjo. The paveldėjimo konstruktorius yra atsakingas už paveldėtų bazinės klasės narių ir išvestinių klasės narių inicijavimą. Kad tai pasiektų, konstruktorius iškviečia bazinės klasės konstruktorių, užtikrindamas, kad visi išvestinės klasės nariai būtų tinkamai inicijuoti, įskaitant paveldėtus iš bazinės klasės.

Iškviečiant bazinės klasės konstruktorių ir perduodant jam būtinus parametrus, paveldėjimo konstruktorius inicijuoja bazinės klasės narius. Tai atliekama naudojant „bazinė klasė (args)“ inicijavimo sąrašas konstruktoriuje. Kiti nurodymai, susiję su išvestine klase, pateikiami konstruktoriaus korpuse.







Sintaksė skirta paveldėjimo C++ klasė yra:



klasė Išvestinė klasė : accessSpecifier BaseClass {
// klasės nariai
} ;

Šiuo atveju formuojama nauja klasė, „Išvestinė klasė“, paveldės iš „Pagrindinė klasė“. Paveldėtų narių prieigos lygis yra nurodytas „ prieigosSpecifier“. C++ naudoja trijų tipų prieigos specifikacijas, būtent „viešas“, „privatus“, ir 'apsaugotas' . Žodis 'viešas' rodo, kad išvestinė klasė turi prieigą prie pagrindinės klasės viešųjų narių. Išvestinė klasė neturi prieigos prie pagrindinės klasės narių, pagal 'privatus' specifikatorius. Išvestinė klasė turi prieigą prie saugomų bazinės klasės narių, kuriuos gali paveldėti jų antrinės klasės pagal 'apsaugotas' specifikatorius.



Paveldėjimo pavyzdys C++

Toliau pateiktame pavyzdyje parodytas įgyvendinimas Paveldėjimas C++ kalboje:





#include
naudojant vardų erdvė std ;

klasė Gyvūnas {
viešas :
tuštuma valgyti ( ) {
cout << 'Aš galiu valgyti!' << endl ;
}
tuštuma miegoti ( ) {
cout << 'Aš galiu miegoti!' << endl ;
}
} ;
klasė Katė : viešas Gyvūnas {
viešas :
tuštuma Miau ( ) {
cout << 'Aš galiu miaukyti!' << endl ;
}
} ;
tarpt pagrindinis ( ) {
Katė katė 1 ;
katė1. valgyti ( ) ;
katė1. miegoti ( ) ;
katė1. Miau ( ) ;

grąžinti 0 ;
}

Pateiktas kodas apibrėžia dvi klases, 'Gyvūnas' ir 'Katė' , kur 'Katė' yra kilęs iš 'Gyvūnas' . Abi klasės turi tam tikras narių funkcijas, pvz 'valgyti miegoti' , ir 'Miau' . Pagrindinė funkcija sukuria klasės objektą 'Katė' ir skambina paveldėtas funkcijos iš klasės 'Gyvūnas' taip pat specifinė klasės funkcija 'Katė' , kuris yra 'Miau' . Programa išveda tekstą į konsolę, nurodydama, kad katė gali valgyti, miegoti ir miaukti.

Išvestis



Kai išvedama klasė, visi bazinės klasės narių kintamieji ir narių funkcijos perkeliami į išvestinę klasę. The paveldėtas narių prieinamumą išvestinėje klasėje lemia prieigos specifikatorius. Išvestinė klasė taip pat gali pakeisti jau esamas funkcijas naujomis. Jis gali pridėti naujų bazinės klasės metodų diegimų ir pridėti naujų narių funkcijų bei kintamųjų.

Labai svarbu atsiminti, kad paveldėjimo konstruktorius turi būti naudojamas aiškiai iškviesti pagrindinės klasės konstruktorių su reikalingais parametrais, jei pagrindinė klasė turi numatytąjį konstruktorių arba jei jis nepasiekiamas.

Išvada

Stiprus bruožas paveldėjimo C++ leidžia klasėms pakartotinai naudoti kodą, paveldint charakteristikas ir veiksmus iš kitų. Naudinga C++ funkcija paveldėjimo konstruktorius leidžia išvestinėms klasėms paveldėti bazinės klasės savybes, metodus ir duomenų narius. Pridėjus pradinių klasių konstruktorių inicijavimo sąrašą, jis apibrėžiamas naudojant tą pačią sintaksę kaip ir standartinis konstruktorius. C++ programuotojai gali sumažinti kodo dubliavimą ir pagerinti kodo struktūrą, naudodamiesi paveldėjimo konstruktorius . Tai svarbus įrankis kuriant sudėtingas klasių hierarchijas naudojant objektinį programavimą.