Što je konstruktor nasljeđivanja u C++

Sto Je Konstruktor Nasljedivanja U C



U C++, nasljedstvo je ključni pojam u objektno orijentiranom programiranju. Izvedena klasa može naslijediti osobine i ponašanja osnovne klase zahvaljujući moćnicima nasljedstvo sposobnost u C++. Izvedena klasa odmah nasljeđuje sve članove osnovne klase kada se formira. Potrebno je da konstruktor izvedene klase inicijalizira i članove osnovne klase. U C++, nasljedstvo je moćna značajka koja programerima omogućuje ponovno korištenje koda, poboljšanje učinkovitosti i organiziranje koda u logičke hijerarhije.

Uz nasljeđivanje, konstruktori su također bitni u C++. A konstruktor je jedinstvena funkcija članica koja vam omogućuje da inicijalizirate svojstva objekta. An Konstruktor nasljeđivanja je konstruktor koji se koristi za inicijalizaciju i osnovne klase i objekata izvedene klase koje je izvedena klasa naslijedila. The konstruktor nasljeđivanja je odgovoran za inicijalizaciju naslijeđenih članova osnovne klase i izvedenih članova klase. Da bi to postigao, konstruktor poziva konstruktora osnovne klase, osiguravajući da su svi članovi izvedene klase ispravno inicijalizirani, uključujući one naslijeđene od osnovne klase.

Pozivanjem konstruktora osnovne klase i prosljeđivanjem potrebnih parametara, konstruktor nasljeđivanja inicijalizira članove osnovne klase. To se postiže korištenjem 'osnovna klasa(args)' inicijalizacijski popis u konstruktoru. Daljnje upute za izvedenu klasu dane su u tijelu konstruktora.







Sintaksa za nasljeđujući klasa u C++ je:



razreda Izvedena klasa : AccessSpecifier BaseClass {
// članovi klase
} ;

Nova klasa koja se formira u ovom slučaju, “Izvedena klasa”, će naslijediti od “Osnovna klasa”. Razina pristupa naslijeđenim članovima navedena je pomoću ' accessSpecifier”. C++ koristi tri tipa specifikatora pristupa, naime “javno”, “privatno”, i 'zaštićen' . Riječ 'javnost' označava da izvedena klasa ima pristup javnim članovima osnovne klase. Izvedena klasa nema pristup članovima osnovne klase, prema 'privatna' specifikator. Izvedena klasa ima pristup zaštićenim članovima osnovne klase koje mogu naslijediti njihove podređene klase, prema 'zaštićen' specifikator.



Primjer nasljeđivanja u C++

Sljedeći primjer pokazuje implementaciju Nasljedstvo u C++:





#include
korištenjem imenski prostor std ;

razreda Životinja {
javnost :
poništiti jesti ( ) {
cout << 'Mogu jesti!' << endl ;
}
poništiti spavati ( ) {
cout << 'Mogu spavati!' << endl ;
}
} ;
razreda Mačka : javnost Životinja {
javnost :
poništiti Mijau ( ) {
cout << 'Mogu mijaukati!' << endl ;
}
} ;
int glavni ( ) {
Mačka mačka1 ;
mačka1. jesti ( ) ;
mačka1. spavati ( ) ;
mačka1. Mijau ( ) ;

povratak 0 ;
}

Dani kod definira dvije klase, 'Životinja' i 'Mačka' , gdje 'Mačka' potječe iz 'Životinja' . Obje klase imaju neke funkcije članice, kao što je 'Jedi spavaj' , i 'Mijau' . Glavna funkcija stvara objekt klase 'Mačka' i poziva naslijeđeno funkcije iz klase 'Životinja' kao i specifična funkcija klase 'Mačka' , koji je 'Mijau' . Program šalje tekst na konzolu, pokazujući da mačka može jesti, spavati i mijaukati.

Izlaz



Kada je klasa izvedena, sve varijable članice osnovne klase i funkcije članice prenose se u izvedenu klasu. The naslijeđeno pristupačnost članova u izvedenoj klasi određena je specifikatorom pristupa. Izvedena klasa također može zamijeniti nove značajke za one koje već postoje. Može dodati nove implementacije za metode osnovne klase i dodati nove funkcije članice i varijable.

Ključno je zapamtiti da konstruktor nasljeđivanja mora se koristiti za eksplicitno pozivanje konstruktora osnovne klase s potrebnim parametrima ako osnovna klasa ima zadani konstruktor ili ako nije dostupan.

Zaključak

Jaka značajka nasljedstvo u C++ dopušta klasama da ponovno koriste kod nasljeđujući karakteristike i radnje od drugih. Korisna značajka C++-a konstruktor nasljeđivanja omogućuje izvedenim klasama da naslijede svojstva, metode i članove podataka osnovne klase. Uz dodatak inicijalizacijskog popisa za konstruktore osnovne klase, definira se koristeći istu sintaksu kao standardni konstruktor. C++ programeri mogu minimizirati dupliciranje koda i poboljšati strukturu koda korištenjem konstruktor nasljeđivanja . Za stvaranje složenih hijerarhija klasa u objektno orijentiranom programiranju, to je važan alat.