Š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:
- Vienkāršs / vienreizējs mantojums
- Hierarhiskā mantošana
- Daudzlīmeņu mantojums
- 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ļautizmantojot 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ļautizmantojot 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++.