C ++

Dedovanje C ++

Dedovanje C ++
Dedovanje je zelo pomembna značilnost objektno usmerjenega programiranja. Programerju omogoča izpeljavo razreda iz obstoječega razreda. To je zelo koristno, zlasti v velikem kompleksnem projektu, ker programerju omogoča, da ponovno uporabi kodo.

V tem članku bomo razpravljali o konceptu dedovanja pri programiranju na C ++. Pojem funkcije prijatelja v jeziku C ++ bomo razložili z delovnimi primeri.

Zakaj dedovanje?

Dedovanje omogoča ustvarjanje novega razreda ali izpeljanega razreda iz drugega razreda ali osnovnega razreda. Izpeljani razred ali podrejeni razred bo imel vse funkcije nadrejenega razreda ali osnovnega razreda. Kodo lahko ponovno uporabimo s pomočjo dedovanja.

Vrsta dedovanja

Obstajajo različne vrste dedovanja:

  1. Enostavno / enojno dedovanje
  2. Hierarhično dedovanje
  3. Dedovanje na več ravneh
  4. Večkratno dedovanje

V tem članku bomo obravnavali samo preprosto / samostojno dedovanje.

Primer 1:

Zdaj pa si oglejmo primer programa za razumevanje koncepta dedovanja v jeziku C++. Določili smo osnovni razred in nato iz njega izpeljali še en razred. Zato bo izpeljani razred imel funkcije (člane in funkcije) iz osnovnega razreda.

#include
uporaba imenskega prostora std;
razred Base_Class

javno:
int i;
prikaz praznine ()

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

;
razred Derived_Class: javni Base_Class

javno:
razveljavi razstavo ()

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

;
int main ()

Izpeljan_razred dc;
enosmerno.i = 100;
enosmerno.zaslon ();
enosmerno.show ();
vrnitev 0;

2. primer:

To je še en primer dedovanja v C++. V tem primeru bomo videli, kako se pri ustvarjanju izpeljanega predmeta razreda pokličejo konstruktorji.

Kot lahko vidite spodaj, smo definirali dva konstruktorja osnovnega razreda in tri konstruktorje izvedenih razredov. Iz spodnjega izhoda lahko jasno opazite, da se najprej pokliče konstruktor osnovnega razreda, preden se pokliče konstruktor izpeljanega razreda.

#include
#include
uporaba imenskega prostora std;
razred Base_Class

javno:
Base_Class ()

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

Base_Class (int x)

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

;
razred Derived_Class: javni Base_Class

javno:
Izvedeni_razred ()

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

Izvedeni_razred (int y)

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

Izvedeni_razred (int x, int y): Base_Class (x)

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

;
int main ()

Izpeljani_razred d (7,19);

3. primer:

V tem primeru bomo videli, kako je mogoče uporabiti izvedene predmete razredov.

Kot lahko vidite, sta opredeljena dva razreda: Rectangle_Class in Cube_Class. Rectangle_Class je osnovni razred, iz katerega izhaja razred, tj.e., Cube_Class je izpeljan. Zato funkcije podedujemo iz razreda Rectangle_Class v Cube_Class.

Prav tako lahko opazite, da podedujemo Cube_Class z nadzorom javnega dostopa. To pomeni, da lahko izvedeni razred dostopa do vseh ne-zasebnih članov osnovnega razreda.

Razglasili smo objekt izpeljanega razreda in nato poklicali metode iz osnovnega razreda, tj.e., setLength () in setBreadth ().

#include
uporaba imenskega prostora std;
razred Rectangle_Class

zasebno:
dolžina int;
int širina;
javno:
Pravokotnik_razred ();
Rectangle_Class (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

dolžina vrnitve;

int getBreadth ()

vrnite širino;

void setLength (int l);
void setBreadth (int b);
int območje ();
;
razred Cube_Class: javni Rectangle_Class

zasebno:
int višina;
javno:
Cube_Class (int h)

višina = h;

int getHeight ()

povratna višina;

void setHeight (int h)

višina = h;

int obseg ()

vrni getLength () * getBreadth () * višina;

;
Rectangle_Class :: Rectangle_Class ()

dolžina = 1;
širina = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

dolžina = l;
širina = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

dolžina = r.dolžina;
širina = r.širina;

void Rectangle_Class :: setLength (int l)

dolžina = l;

void Rectangle_Class :: setBreadth (int b)

širina = b;

int Rectangle_Class :: area ()

dolžina vračanja * širina;

int main ()

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

Zaključek:

V tem članku sem razložil koncept dedovanja v jeziku C++. C ++ podpira različne vrste dedovanja, vključno z »večkratnim dedovanjem« (tj.e., podedovanje funkcij iz več osnovnih razredov ali nadrejenega razreda). Da pa bi bilo poenostavljeno, sem tu obravnaval samo eno dediščino. Pokazal sem tri delovne primere, da razložim, kako lahko pri programiranju na C ++ uporabimo dedovanje in ponovno uporabimo kodo. Poleg tega je to zelo koristna lastnost C-ja++.

10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...
Bitka za Wesnoth 1.13.6 Razvoj izdan
Bitka za Wesnoth 1.13.6, ki je izšel prejšnji mesec, je šesta razvojna izdaja v 1.13.x series in prinaša številne izboljšave, predvsem uporabniški vme...