Hvad er Inheritance Constructor i C++

Hvad Er Inheritance Constructor I C



I C++, arv er et nøglebegreb i objektorienteret programmering. En afledt klasse kan arve en basisklasses egenskaber og adfærd takket være den kraftfulde arv kapacitet i C++. En afledt klasse arver straks alle basisklassens medlemmer, når den dannes. Det er nødvendigt for den afledte klassekonstruktør også at initialisere basisklassemedlemmerne. I C++, arv er en kraftfuld funktion, der gør det muligt for udviklere at genbruge kode, forbedre effektiviteten og organisere kode i logiske hierarkier.

Sammen med arv er konstruktører også vigtige i C++. EN konstruktør er en unik medlemsfunktion, der giver dig mulighed for at initialisere objektets egenskaber. An Arvekonstruktør er en konstruktør, der bruges til at initialisere både basisklassen og afledte klasseobjekter, som den afledte klasse har arvet. Det arvekonstruktør er ansvarlig for at initialisere både de nedarvede basisklassemedlemmer og de afledte klassemedlemmer. For at opnå dette påkalder konstruktøren basisklassens konstruktør og sikrer, at alle medlemmer af den afledte klasse er korrekt initialiseret, inklusive dem, der er nedarvet fra basisklassen.

Ved at kalde basisklassens konstruktør og videregive de nødvendige parametre til den arvekonstruktør initialiserer medlemmerne af basisklassen. Dette opnås ved hjælp af 'basisklasse(args)' initialiseringsliste i konstruktøren. Yderligere instruktioner, der er specifikke for den afledte klasse, findes i konstruktørens krop.







Syntaksen for arve en klasse i C++ er:



klasse Afledt klasse : accessSpecifier BaseClass {
// klassemedlemmer
} ;

Den nye klasse, der dannes i dette tilfælde, 'Afledt klasse', vil arve fra 'BaseClass'. Adgangsniveauet til de nedarvede medlemmer er specificeret af ' accessSpecifier”. C++ anvender tre typer adgangsspecifikationer, nemlig 'offentlig', 'privat', og 'beskyttet' . Ordet 'offentlig' angiver, at den afledte klasse har adgang til basisklassens offentlige medlemmer. Den afledte klasse har ingen adgang til medlemmerne af basisklassen, ifølge 'privat' specificator. Den afledte klasse har adgang til de beskyttede basisklassemedlemmer, som kan arves af deres børneklasser, ifølge 'beskyttet' specificator.



Eksempel på arv i C++

Følgende eksempel viser implementeringen af Arv i C++:





#include
ved brug af navneområde std ;

klasse Dyr {
offentlig :
ugyldig spise ( ) {
cout << 'Jeg kan spise!' << endl ;
}
ugyldig søvn ( ) {
cout << 'Jeg kan sove!' << endl ;
}
} ;
klasse Kat : offentlig Dyr {
offentlig :
ugyldig miav ( ) {
cout << 'Jeg kan miave!' << endl ;
}
} ;
int vigtigste ( ) {
Kat kat1 ;
kat1. spise ( ) ;
kat1. søvn ( ) ;
kat1. miav ( ) ;

Vend tilbage 0 ;
}

Den givne kode definerer to klasser, 'Dyr' og 'Kat' , hvor 'Kat' er afledt af 'Dyr' . Begge klasser har nogle medlemsfunktioner, som f.eks 'spise', 'sove' , og 'miav' . Hovedfunktionen opretter et objekt i klassen 'Kat' og ringer til nedarvet funktioner fra klassen 'Dyr' samt klassens specifikke funktion 'Kat' , som er 'miav' . Programmet udsender teksten til konsollen, hvilket indikerer, at katten kan spise, sove og miave.

Produktion



Når en klasse er afledt, overføres alle basisklassens medlemsvariable og medlemsfunktioner til den afledte klasse. Det nedarvet medlemmers tilgængelighed i den afledte klasse bestemmes af adgangsspecifikationen. Den afledte klasse kan også erstatte nye funktioner med dem, der allerede eksisterer. Det kan tilføje nye implementeringer til basisklassens metoder og tilføje nye medlemsfunktioner og variabler.

Det er afgørende at huske, at arvekonstruktør skal bruges til eksplicit at kalde basisklassens konstruktør med de nødvendige parametre, hvis basisklassen har en standardkonstruktør, eller hvis den ikke er tilgængelig.

Konklusion

Det stærke træk ved arv i C++ tillader klasser at genbruge kode ved at arve egenskaber og handlinger fra andre. En nyttig funktion af C++'er arvekonstruktør tillader afledte klasser at arve egenskaberne, metoderne og datamedlemmerne af en basisklasse. Med tilføjelsen af ​​en initialiseringsliste for basisklassekonstruktører defineres den ved hjælp af den samme syntaks som en standardkonstruktør. C++-programmører kan minimere kodeduplikering og forbedre kodestrukturen ved at bruge arvekonstruktør . Til at skabe komplekse klassehierarkier i objektorienteret programmering er det et vigtigt værktøj.