Kaj je konstruktor dedovanja v C++

Kaj Je Konstruktor Dedovanja V C



V C++, dedovanje je ključni pojem v objektno usmerjenem programiranju. Izpeljani razred lahko podeduje lastnosti in vedenja osnovnega razreda zahvaljujoč močnim dedovanje zmogljivost v C++. Izpeljani razred takoj podeduje vse člane osnovnega razreda, ko je oblikovan. Potrebno je, da konstruktor izpeljanega razreda inicializira tudi člane osnovnega razreda. V C++, dedovanje je zmogljiva funkcija, ki razvijalcem omogoča ponovno uporabo kode, izboljšanje učinkovitosti in organiziranje kode v logične hierarhije.

Poleg dedovanja so v C++ bistveni tudi konstruktorji. A konstruktor je edinstvena funkcija člana, ki vam omogoča inicializacijo lastnosti objekta. An Konstruktor dedovanja je konstruktor, ki se uporablja za inicializacijo osnovnega razreda in objektov izpeljanega razreda, ki jih je izpeljani razred podedoval. The konstruktor dedovanja je odgovoren za inicializacijo podedovanih članov osnovnega razreda in izpeljanih članov razreda. Da bi to dosegel, konstruktor pokliče konstruktor osnovnega razreda in zagotovi, da so vsi člani izpeljanega razreda pravilno inicializirani, vključno s tistimi, podedovanimi iz osnovnega razreda.

S priklicem konstruktorja osnovnega razreda in posredovanjem potrebnih parametrov se konstruktor dedovanja inicializira člane osnovnega razreda. To se doseže z uporabo 'osnovni razred(argi)' inicializacijski seznam v konstruktorju. Nadaljnja navodila za izpeljani razred so na voljo v telesu konstruktorja.







Sintaksa za dedovanje razred v C++ je:



razred Izpeljani razred : accessSpecifier BaseClass {
// člani razreda
} ;

Nov razred, ki se oblikuje v tem primeru, 'Izpeljani razred', bo podedoval od 'Osnovni razred'. Raven dostopa do podedovanih članov je določena z ' accessSpecifier«. C++ uporablja tri vrste specifikatorjev dostopa, in sicer 'javno', 'zasebno', in “zaščiten” . Beseda “javno” označuje, da ima izpeljani razred dostop do javnih članov osnovnega razreda. Izpeljani razred nima dostopa do članov osnovnega razreda, glede na 'zasebno' specifikator. Izpeljani razred ima dostop do zaščitenih članov osnovnega razreda, ki jih lahko podedujejo njihovi podrejeni razredi, glede na 'zaščiten' specifikator.



Primer dedovanja v C++

Naslednji primer prikazuje izvedbo Dedovanje v C++:





#include
uporabo imenski prostor std ;

razred žival {
javnosti :
praznina jesti ( ) {
cout << 'Lahko jem!' << konec ;
}
praznina spati ( ) {
cout << 'Lahko spim!' << konec ;
}
} ;
razred Mačka : javnosti žival {
javnosti :
praznina mijav ( ) {
cout << 'Lahko mijavkam!' << konec ;
}
} ;
int glavni ( ) {
Mačka mačka1 ;
mačka1. jesti ( ) ;
mačka1. spati ( ) ;
mačka1. mijav ( ) ;

vrnitev 0 ;
}

Podana koda definira dva razreda, 'Žival' in 'Mačka' , kje 'Mačka' izhaja iz 'Žival' . Oba razreda imata nekaj članskih funkcij, kot npr 'jesti', 'spati' , in 'mijav' . Glavna funkcija ustvari objekt razreda 'Mačka' in pokliče podedovana funkcije iz razreda 'Žival' kot tudi specifično funkcijo razreda 'Mačka' , kateri je 'mijav' . Program izpiše besedilo na konzolo, kar pomeni, da mačka lahko jede, spi in mijavka.

Izhod



Ko je razred izpeljan, se vse spremenljivke in članske funkcije osnovnega razreda prenesejo v izpeljani razred. The podedovana dostopnost članov v izpeljanem razredu določa specifikator dostopa. Izpeljani razred lahko tudi nadomesti nove funkcije za tiste, ki že obstajajo. Doda lahko nove izvedbe za metode osnovnega razreda ter doda nove članske funkcije in spremenljivke.

Ključnega pomena je, da se spomnite, da konstruktor dedovanja je treba uporabiti za eksplicitni klic konstruktorja osnovnega razreda s potrebnimi parametri, če ima osnovni razred privzeti konstruktor ali če ta ni na voljo.

Zaključek

Močna lastnost dedovanje v C++ razredom omogoča ponovno uporabo kode z dedovanjem lastnosti in dejanj od drugih. Uporabna funkcija C++ konstruktor dedovanja omogoča izpeljanim razredom, da podedujejo lastnosti, metode in podatkovne člane osnovnega razreda. Z dodatkom inicializacijskega seznama za konstruktorje osnovnega razreda je definiran z uporabo iste sintakse kot standardni konstruktor. Programerji C++ lahko zmanjšajo podvajanje kode in izboljšajo strukturo kode z uporabo konstruktor dedovanja . Za ustvarjanje kompleksnih hierarhij razredov v objektno usmerjenem programiranju je pomembno orodje.