C ++

C ++ mantojums

C ++ mantojums
Mantošana ir ļoti svarīga objektorientētās programmēšanas iezīme. Tas ļauj programmētājam atvasināt klasi no esošās klases. Tas ir ļoti noderīgi, jo īpaši lielā sarežģītā projektā, jo tas ļauj programmētājam atkārtoti izmantot kodu.

Šajā rakstā mēs apspriedīsim mantojuma jēdzienu C ++ programmēšanā. Mēs izskaidrosim drauga funkcijas jēdzienu C ++ ar darba piemēriem.

Kāpēc mantojums?

Mantošana ļauj izveidot jaunu klasi vai atvasinātu klasi no citas klases vai bāzes klases. Atvasinātajā klasē vai bērnu klasē būs visas vecāku klases vai pamatklases iezīmes. Mēs varam atkārtoti izmantot kodu ar mantojuma palīdzību.

Mantojuma veids

Pastāv dažādi mantojuma veidi:

  1. Vienkāršs / vienreizējs mantojums
  2. Hierarhiskā mantošana
  3. Daudzlīmeņu mantojums
  4. Daudzkārtējs mantojums

Šajā rakstā mēs apsvērsim tikai vienkāršu / vienu mantojumu.

1. piemērs:

Tagad apskatīsim programmas piemēru, lai saprastu mantojuma jēdzienu C++. Mēs esam definējuši bāzes klasi un pēc tam no tās atvasinājuši citu klasi. Tāpēc atvasinātajai klasei būs pazīmes (dalībnieki un funkcijas) no bāzes klases.

# iekļaut
izmantojot nosaukumvietu std;
klase Base_Class

publiski:
int i;
tukšs displejs ()

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

;
klase Derived_Class: publiskā Base_Class

publiski:
anulēt šovu ()

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

;
int main ()

Atvasinātais_klases dc;
dc.i = 100;
dc.displejs ();
dc.izrāde ();
atgriešanās 0;

2. piemērs:

Šis ir vēl viens mantojuma piemērs C++. Šajā piemērā mēs redzēsim, kā konstruktori tiek saukti, kad tiek izveidots atvasināts klases objekts.

Kā redzat zemāk, mēs esam definējuši divus bāzes klases konstruktorus un trīs atvasinātus klases konstruktorus. No zemāk esošās izejas varat skaidri pamanīt, ka bāzes klases konstruktors tiek izsaukts vispirms, pirms tiek saukts atvasinātais klases konstruktors.

# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
klase Base_Class

publiski:
Base_Class ()

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

Base_Class (int x)

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

;
klase Derived_Class: publiskā Base_Class

publiski:
Derived_Class ()

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

Atvasinātais_klase (vid. Y)

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

Atvasinātais_klase (int x, int y): Bāzes_klase (x)

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

;
int main ()

Atvasinātā d klase (7,19);

3. piemērs:

Šajā piemērā mēs redzēsim, kā var izmantot atvasinātus klases objektus.

Kā redzat, ir definētas divas klases: Taisnstūra_ klase un Kuba_ klase. Taisnstūra_klase ir bāzes klase, no kuras atvasinātā klase, t.i.e., Cube_Class ir atvasināts. Tāpēc mēs mantojam funkcijas no Taisnstūra_klases līdz Cube_klases.

Varat arī pamanīt, ka mēs mantojam Cube_Class ar publiskās piekļuves kontroli. Tas nozīmē, ka atvasinātā klase var piekļūt visiem bāzes klases biedriem, kas nav privāti.

Mēs esam deklarējuši atvasinātās klases objektu un pēc tam izsaucam metodes no bāzes klases, t.i.e., setLength () un setBreadth ().

# iekļaut
izmantojot nosaukumvietu std;
klase Taisnstūris_klase

Privāts:
int garums;
int platums;
publiski:
Taisnstūris_klase ();
Taisnstūra_klase (int l, int b);
Taisnstūra_ klase (Taisnstūra_ klase & r);
int getLength ()

atgriešanās garums;

int getBreadth ()

atgriešanās platums;

void setLength (int l);
void setBreadth (int b);
int apgabals ();
;
klase Cube_Class: publiska Taisnstūra_Class

Privāts:
int augstums;
publiski:
Cube_Class (int h)

augstums = h;

int getHeight ()

atgriešanās augstums;

void setHeight (int h)

augstums = h;

int tilpums ()

atgriezties getLength () * getBreadth () * augstums;

;
Taisnstūra_ klase :: Taisnstūra_ klase ()

garums = 1;
platums = 1;

Taisnstūra_klase :: Taisnstūra_ klase (int l, int b)

garums = l;
platums = b;

Taisnstūra_klase :: Taisnstūra_ klase (Taisnstūra_ klase un r)

garums = r.garums;
platums = r.platums;

void Rectangle_Class :: setLength (int l)

garums = l;

void Rectangle_Class :: setBreadth (int b)

platums = b;

int Rectangle_Class :: apgabals ()

atgriešanās garums * platums;

int main ()

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

Secinājums:

Šajā rakstā es esmu izskaidrojis mantojuma jēdzienu C++. C ++ atbalsta dažādus mantojuma veidus, tostarp “vairākkārtēju mantojumu” (t.i.e., vairāku pamatklases vai vecāku klases mantošana). Tomēr, lai padarītu to vienkāršāku, šeit esmu apsvēris tikai vienu mantojumu. Esmu parādījis trīs darba piemērus, lai izskaidrotu, kā mēs varam izmantot mantojumu C ++ programmēšanā un atkārtoti izmantot kodu. Turklāt šī ir ļoti noderīga C iezīme++.

WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...