Kas ir mantojuma konstruktors programmā C++

Kas Ir Mantojuma Konstruktors Programma C



C++ valodā, mantojums ir galvenais objektorientētās programmēšanas jēdziens. Atvasināta klase var mantot bāzes klases iezīmes un uzvedību, pateicoties spēcīgajai klasei mantojums spēja C++ valodā. Atvasināta klase uzreiz manto visus bāzes klases locekļus, kad tā tiek izveidota. Atvasinātajam klases konstruktoram ir nepieciešams inicializēt arī bāzes klases dalībniekus. C++ valodā, mantojums ir spēcīgs līdzeklis, kas ļauj izstrādātājiem atkārtoti izmantot kodu, uzlabot efektivitāti un sakārtot kodu loģiskās hierarhijās.

Kopā ar mantošanu C++ valodā būtiski ir arī konstruktori. A konstruktors ir unikāla dalībnieka funkcija, kas ļauj inicializēt objekta īpašības. An Mantojuma konstruktors ir konstruktors, ko izmanto, lai inicializētu gan bāzes klases, gan atvasinātās klases objektus, kurus atvasinātā klase ir mantojusi. The mantojuma konstruktors ir atbildīgs par mantoto bāzes klases dalībnieku un atvasināto klases dalībnieku inicializāciju. Lai to panāktu, konstruktors izsauc bāzes klases konstruktoru, nodrošinot, ka visi atvasinātās klases locekļi ir pareizi inicializēti, ieskaitot tos, kas mantoti no bāzes klases.

Izsaucot bāzes klases konstruktoru un nododot tam nepieciešamos parametrus, mantojuma konstruktors inicializē bāzes klases dalībniekus. Tas tiek paveikts, izmantojot 'bāzes klase (args)' inicializācijas saraksts konstruktorā. Papildu norādījumi par atvasināto klasi ir sniegti konstruktora pamattekstā.







Sintakse priekš mantojot klase C++ valodā ir:



klasē Atvasināta klase : accessSpecifier BaseClass {
// klases biedri
} ;

Šajā gadījumā tiek veidota jaunā klase, “DerivedClass”, mantos no 'Bāzes klase'. Piekļuves līmeni mantotajiem dalībniekiem nosaka “ piekļuves Specifikators”. C++ izmanto trīs veidu piekļuves specifikācijas, proti 'publisks', 'privāts', un 'aizsargāts' . Vārds 'publisks' norāda, ka atvasinātajai klasei ir piekļuve bāzes klases publiskajiem dalībniekiem. Atvasinātajai klasei nav piekļuves bāzes klases dalībniekiem, saskaņā ar 'Privāts' precizētājs. Atvasinātajai klasei ir piekļuve aizsargātajiem bāzes klases dalībniekiem, kurus var mantot viņu atvasinātās klases saskaņā ar 'aizsargāts' precizētājs.



Mantojuma piemērs C++ valodā

Šis piemērs parāda ieviešanu Mantojums valodā C++:





#include
izmantojot nosaukumvieta std ;

klasē Dzīvnieks {
publiski :
nederīgs ēst ( ) {
cout << 'Es varu ēst!' << endl ;
}
nederīgs Gulēt ( ) {
cout << 'Es varu gulēt!' << endl ;
}
} ;
klasē kat : publiski Dzīvnieks {
publiski :
nederīgs Mjau ( ) {
cout << 'Es varu ņaudēt!' << endl ;
}
} ;
starpt galvenais ( ) {
Kaķis kaķis1 ;
kaķis1. ēst ( ) ;
kaķis1. Gulēt ( ) ;
kaķis1. Mjau ( ) ;

atgriezties 0 ;
}

Dotais kods definē divas klases, 'Dzīvnieks' un 'Kaķis' , kur 'Kaķis' ir atvasināts no 'Dzīvnieks' . Abām klasēm ir dažas dalībnieku funkcijas, piemēram, 'ēst', 'gulēt' , un 'Mjau' . Galvenā funkcija izveido klases objektu 'Kaķis' un zvana uz iedzimta funkcijas no klases 'Dzīvnieks' kā arī klases īpašā funkcija 'Kaķis' , kurš ir 'Mjau' . Programma izvada tekstu konsolei, norādot, ka kaķis var ēst, gulēt un ņaudēt.

Izvade



Kad klase ir atvasināta, visi bāzes klases locekļu mainīgie un biedru funkcijas tiek pārsūtīti uz atvasināto klasi. The iedzimta dalībnieku pieejamību atvasinātajā klasē nosaka piekļuves specifikators. Atvasinātā klase var arī aizstāt jau esošās funkcijas ar jauniem līdzekļiem. Tas var pievienot jaunas ieviešanas pamatklases metodēm un pievienot jaunas dalībnieku funkcijas un mainīgos.

Ir ļoti svarīgi atcerēties, ka mantojuma konstruktors ir jāizmanto, lai skaidri izsauktu bāzes klases konstruktoru ar nepieciešamajiem parametriem, ja bāzes klasei ir noklusējuma konstruktors vai ja tas nav pieejams.

Secinājums

Spēcīgā iezīme mantojums C++ ļauj klasēm atkārtoti izmantot kodu, pārmantojot raksturlielumus un darbības no citiem. Noderīga C++ funkcija mantojuma konstruktors ļauj atvasinātajām klasēm mantot bāzes klases rekvizītus, metodes un datu elementus. Pievienojot inicializācijas sarakstu bāzes klases konstruktoriem, tas tiek definēts, izmantojot to pašu sintaksi kā standarta konstruktoram. C++ programmētāji var samazināt koda dublēšanos un uzlabot koda struktūru, izmantojot mantojuma konstruktors . Tas ir svarīgs rīks, lai objektorientētā programmēšanā izveidotu sarežģītas klašu hierarhijas.