Vad är Inheritance Constructor i C++

Vad Ar Inheritance Constructor I C



I C++, arv är ett nyckelbegrepp inom objektorienterad programmering. En härledd klass kan ärva en basklasss egenskaper och beteenden tack vare den kraftfulla arv kapacitet i C++. En härledd klass ärver omedelbart alla basklassens medlemmar när den bildas. Det är nödvändigt för den härledda klasskonstruktorn att också initiera basklassmedlemmarna. I C++, arv är en kraftfull funktion som gör det möjligt för utvecklare att återanvända kod, förbättra effektiviteten och organisera kod i logiska hierarkier.

Tillsammans med arv är konstruktörer också viktiga i C++. A konstruktör är en unik medlemsfunktion som låter dig initiera objektets egenskaper. En Arvskonstruktör är en konstruktor som används för att initiera både basklassen och de härledda klassobjekten som den härledda klassen har ärvt. De arvskonstruktör är ansvarig för att initiera både de ärvda basklassmedlemmarna och de härledda klassmedlemmarna. För att uppnå detta anropar konstruktorn basklassens konstruktor, vilket säkerställer att alla medlemmar i den härledda klassen är korrekt initierade, inklusive de som ärvts från basklassen.

Genom att anropa basklassens konstruktor och skicka de nödvändiga parametrarna till den, arvskonstruktör initierar medlemmarna i basklassen. Detta görs med hjälp av 'basklass(args)' initieringslistan i konstruktorn. Ytterligare instruktioner specifika för den härledda klassen finns i konstruktorkroppen.







Syntaxen för ärva en klass i C++ är:



klass DerivedClass : accessSpecifier BaseClass {
// klassmedlemmar
} ;

Den nya klassen som bildas i detta fall, 'DerivedClass', kommer att ärva från 'Basklass'. Åtkomstnivån till de ärvda medlemmarna anges av ' accessSpecifier”. C++ använder tre typer av åtkomstspecifikatorer, nämligen 'offentlig-privat', och 'skyddad' . Ordet 'offentlig' indikerar att den härledda klassen har tillgång till basklassens offentliga medlemmar. Den härledda klassen har ingen tillgång till medlemmarna i basklassen, enligt 'privat' specificator. Den härledda klassen har tillgång till de skyddade basklassmedlemmarna som kan ärvas av deras barnklasser, enligt 'skyddad' specificator.



Exempel på arv i C++

Följande exempel visar implementeringen av Arv i C++:





#include
använder sig av namnutrymme std ;

klass Djur {
offentlig :
tomhet äta ( ) {
cout << 'Jag kan äta!' << endl ;
}
tomhet sova ( ) {
cout << 'Jag kan sova!' << endl ;
}
} ;
klass Katt : offentlig Djur {
offentlig :
tomhet mjau ( ) {
cout << 'Jag kan jama!' << endl ;
}
} ;
int huvud ( ) {
Katt katt1 ;
kat1. äta ( ) ;
kat1. sova ( ) ;
kat1. mjau ( ) ;

lämna tillbaka 0 ;
}

Den givna koden definierar två klasser, 'Djur' och 'Katt' , var 'Katt' härleds från 'Djur' . Båda klasserna har vissa medlemsfunktioner, som t.ex 'Ät, sov' , och 'mjau' . Huvudfunktionen skapar ett objekt i klassen 'Katt' och ringer till ärvt funktioner från klassen 'Djur' samt klassens specifika funktion 'Katt' , vilket är 'mjau' . Programmet matar ut texten till konsolen, vilket indikerar att katten kan äta, sova och jama.

Produktion



När en klass härleds överförs alla basklassens medlemsvariabler och medlemsfunktioner till den härledda klassen. De ärvt medlemmars tillgänglighet i den härledda klassen bestäms av åtkomstspecifikationen. Den härledda klassen kan också ersätta nya funktioner för de som redan finns. Den kan lägga till nya implementeringar för basklassens metoder och lägga till nya medlemsfunktioner och variabler.

Det är viktigt att komma ihåg att arvskonstruktör måste användas för att explicit anropa basklassens konstruktor med nödvändiga parametrar om basklassen har en standardkonstruktor eller om den inte är tillgänglig.

Slutsats

Den starka egenskapen hos arv i C++ tillåter klasser att återanvända kod genom att ärva egenskaper och åtgärder från andra. En användbar funktion i C++ arvskonstruktör tillåter härledda klasser att ärva egenskaperna, metoderna och datamedlemmarna i en basklass. Med tillägget av en initialiseringslista för basklasskonstruktörer, definieras den med samma syntax som en standardkonstruktor. C++-programmerare kan minimera kodduplicering och förbättra kodstrukturen genom att använda arvskonstruktör . För att skapa komplexa klasshierarkier i objektorienterad programmering är det ett viktigt verktyg.