C ++

C ++ paveldėjimas

C ++ paveldėjimas
Paveldėjimas yra labai svarbus objektinio programavimo bruožas. Tai leidžia programuotojui išvesti klasę iš esamos klasės. Tai yra labai naudinga, ypač dideliame sudėtingame projekte, nes tai leidžia programuotojui pakartotinai naudoti kodą.

Šiame straipsnyje aptarsime paveldėjimo koncepciją programuojant C ++. Draugų funkcijos sampratą C ++ paaiškinsime darbiniais pavyzdžiais.

Kodėl paveldėjimas?

Paveldėjimas leidžia sukurti naują klasę arba išvestą klasę iš kitos klasės ar bazinės klasės. Išvestinė klasė arba vaikų klasė turės visas tėvų klasės arba pagrindinės klasės ypatybes. Mes galime pakartotinai naudoti kodą paveldėjimo pagalba.

Paveldėjimo rūšis

Yra įvairių paveldėjimo rūšių:

  1. Paprastas / vienas paveldėjimas
  2. Hierarchinis paveldėjimas
  3. Daugiapakopis paveldėjimas
  4. Daugkartinis paveldėjimas

Šiame straipsnyje mes apsvarstysime tik paprastą / vieną paveldėjimą.

1 pavyzdys:

Dabar pažvelkime į programos pavyzdį, kad suprastume paveldėjimo sąvoką C++. Mes apibrėžėme bazinę klasę ir tada iš jos išvedėme kitą klasę. Todėl išvestinė klasė turės pagrindinės klasės požymius (narius ir funkcijas).

# įtraukti
naudojant vardų sritį std;
klasės „Base_Class“

vieša:
int i;
negaliojantis ekranas ()

cout << "Display of Base Class " << i << endl;

;
klasė Išvestinė_klasė: viešoji Bazės_klasė

vieša:
tuščia laida ()

cout << "Show of Derived Class" << endl;

;
int main ()

Išvestinė_klasė nuolatinė;
nuolatinė srovė.i = 100;
nuolatinė srovė.rodyti ();
nuolatinė srovė.Rodyti();
grąžinti 0;

2 pavyzdys:

Tai dar vienas C paveldėjimo pavyzdys++. Šiame pavyzdyje mes pamatysime, kaip konstruktoriai vadinami, kai sukuriamas išvestinis klasės objektas.

Kaip matote žemiau, mes apibrėžėme du pagrindinės klasės konstruktorius ir tris išvestinius klasės konstruktorius. Iš žemiau pateiktos išvesties galite aiškiai pastebėti, kad pagrindinės klasės konstruktorius yra iškviečiamas pirmiausia prieš pradedant vadinti išvestinį klasės konstruktorių.

# įtraukti
# įtraukti
naudojant vardų sritį std;
klasės „Base_Class“

vieša:
Base_Class ()

cout << "Base_Class - No Parameters" << endl;

Base_Class (int x)

cout << "Base_Class - Parameters : " << x << endl;

;
klasė Išvestinė_klasė: viešoji Bazės_klasė

vieša:
Išvestinė_klasė ()

cout << "Derived_Class - No Parameters" << endl;

Išvestinė_ klasė (vid. Y)

cout << "Derived_Class - Parameters : " << y << endl;

Išvestinė_klasė (int x, int y): Pagrindo_klasė (x)

cout << "Param of Derived_Class : " << y << endl;

;
int main ()

Išvestinė d klasė (7,19);

3 pavyzdys:

Šiame pavyzdyje mes pamatysime, kaip galima naudoti išvestinius klasės objektus.

Kaip matote, yra apibrėžtos dvi klasės: stačiakampis_klasė ir kubo_klasė. „Stačiakampis_klasė“ yra pagrindinė klasė, iš kurios išvestinė klasė, t.e., Išvedama „Cube_Class“. Todėl mes paveldime funkcijas iš „Stačiakampis_klasė“ į „Kubo_klasė“.

Be to, galite pastebėti, kad „Cube_Class“ paveldime su viešosios prieigos valdymu. Tai reiškia, kad išvestinė klasė gali prieiti prie visų neprivačių bazinės klasės narių.

Mes paskelbėme išvestinės klasės objektą ir paskui iškviečiame metodus iš bazinės klasės, t.e., setLength () ir setBreadth ().

# įtraukti
naudojant vardų sritį std;
klasė Stačiakampis_klasė

privatus:
int ilgis;
int plotis;
vieša:
Stačiakampis_klasė ();
Stačiakampis_klasė (int l, int b);
Stačiakampis_klasė (Stačiakampis_klasė & r);
int getLength ()

grąžinimo ilgis;

int getBreadth ()

grąžinimo plotis;

void setLength (int l);
void setBreadth (int b);
int plotas ();
;
klasė „Cube_Class“: viešoji stačiakampio_klasė

privatus:
int aukštis;
vieša:
„Cube_Class“ (int h)

aukštis = h;

int getHeight ()

grįžimo aukštis;

void setHeight (int h)

aukštis = h;

int tūris ()

grįžti getLength () * getBreadth () * aukštis;

;
Stačiakampis_klasė :: Stačiakampis_klasė ()

ilgis = 1;
plotis = 1;

Stačiakampis_klasė :: Stačiakampis_klasė (int l, int b)

ilgis = l;
plotis = b;

Stačiakampis_klasė :: stačiakampis_klasė (stačiakampis_klasė ir r)

ilgis = r.ilgis;
plotis = r.plotis;

void Rectangle_Class :: setLength (int l)

ilgis = l;

negaliojantis stačiakampis_klasė :: setBreadth (int b)

plotis = b;

int Rectangle_Class :: plotas ()

grąžinimo ilgis * plotis;

int main ()

Cube_class c (8);
c.setLength (12);
c.setBreadth (9);
cout<<"Volume is "<

Išvada:

Šiame straipsnyje aš paaiškinau paveldėjimo sąvoką C++. C ++ palaiko įvairius paveldėjimo tipus, įskaitant „daugkartinį paveldėjimą“ (t.e., funkcijų paveldėjimas iš kelių bazinių klasių arba tėvų klasės). Tačiau kad būtų paprasčiau, aš čia apsvarstiau tik vieną paveldėjimą. Parodžiau tris veikiančius pavyzdžius, paaiškinančius, kaip galime naudoti paveldėjimą programuojant C ++ ir pakartotinai naudoti kodą. Be to, tai yra labai naudinga C savybė++.

„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...