C ++ perintö

C Inheritance



Perintö on erittäin tärkeä ominaisuus olio-ohjelmoinnissa. Sen avulla ohjelmoija voi johtaa luokan olemassa olevasta luokasta. Tämä on erittäin hyödyllistä erityisesti suuressa monimutkaisessa projektissa, koska sen avulla ohjelmoija voi käyttää koodia uudelleen.

Tässä artikkelissa aiomme keskustella C ++ -ohjelmoinnin perintökonseptista. Selitämme C ++: n ystävätoiminnon käsitteen toimivilla esimerkeillä.







Miksi perintö?

Perintö mahdollistaa uuden luokan tai johdetun luokan luomisen toisesta luokasta tai perusluokasta. Johdetulla luokalla tai alaluokalla on kaikki pääluokan tai perusluokan ominaisuudet. Voimme käyttää koodia uudelleen perinnön avulla.



Perinnön tyyppi

On olemassa erilaisia ​​perintötyyppejä:



  1. Yksinkertainen/yksittäinen perintö
  2. Hierarkkinen perintö
  3. Monitasoinen perintö
  4. Useita perintöjä

Tässä artikkelissa aiomme tarkastella vain yksinkertaista/yksittäistä perintöä.





Esimerkki 1:

Katsotaanpa nyt esimerkkiohjelmaa, jotta ymmärrämme perinnön käsitteen C ++: ssa. Olemme määritelleet perusluokan ja johtaneet siitä toisen luokan. Siksi johdetulla luokalla on perusluokan ominaisuudet (jäsenet ja funktiot).

#sisältää

käyttämällä nimiavaruuden std;

luokka Base_Class
{
julkinen:
inti;
mitätönnäyttö()
{
kustannus<< 'Perusluokan näyttö' <<i<<endl;
}

};

luokka Derived_Class:public Base_Class
{
julkinen:
mitätönnäytä()
{
kustannus<< 'Johdetun luokan esitys' <<endl;
}
};

inttärkein()
{
Derived_Class dc;
DC.i = 100;
DC.näyttö();
DC.näytä();

palata 0;
}



Esimerkki 2:

Tämä on toinen esimerkki perinnöstä C ++: ssa. Tässä esimerkissä aiomme nähdä, kuinka konstruktorit kutsutaan, kun johdettu luokkaobjekti luodaan.

Kuten alla näet, olemme määrittäneet kaksi perusluokan konstruktoria ja kolme johdettua luokkakonstruktoria. Voit selvästi havaita alla olevasta tuotoksesta, että perusluokan konstruktori kutsutaan ensin ennen johdetun luokan konstruktorin kutsumista.

#sisältää
käyttämällä nimiavaruuden std;

luokka Base_Class
{
julkinen:
Base_Class()
{
kustannus<< 'Base_Class - Ei parametreja' <<endl;
}
Base_Class(intx)
{
kustannus<< 'Base_Class - Parameters:' <<x<<endl;
}
};

luokka Derived_Class:public Base_Class
{
julkinen:
Derived_Class()
{
kustannus<< 'Derived_Class - ei parametreja' <<endl;
}
Derived_Class(intja)
{
kustannus<< 'Derived_Class - Parameters:' <<ja<<endl;
}
Derived_Class(intx,intja):Base_Class(x)
{
kustannus<< 'Param of Derived_Class:' <<ja<<endl;
}
};

inttärkein()
{
Derived_Class d(7,19);
}

Esimerkki 3:

Tässä esimerkissä aiomme nähdä, miten johdettuja luokkaobjekteja voidaan käyttää.

Kuten näette, on määritelty kaksi luokkaa: Rectangle_Class ja Cube_Class. Rectangle_Class on perusluokka, josta johdettu luokka eli Cube_Class on johdettu. Siksi perimme ominaisuudet Rectangle_Classista Cube_Class -luokkaan.

Voit myös huomata, että perimme Cube_Class -luokan julkisen käytönhallinnan avulla. Tämä tarkoittaa, että johdettu luokka voi käyttää kaikkia perusluokan ei-yksityisiä jäseniä.

Olemme julistaneet johdetun luokan objektin ja kutsumme sitten perusluokan menetelmät, eli setLength () ja setBreadth ().

#sisältää

käyttämällä nimiavaruuden std;

luokka Rectangle_Class
{
yksityinen:
intpituus;
intleveys;
julkinen:
Suorakulmion_luokka();
Suorakulmion_luokka(intthe,intb);
Suorakulmion_luokka(Suorakulmion_luokka&r);
intgetLength()
{
palatapituus;
}
intgetBreadth()
{
palataleveys;
}
mitätönsetLength(intthe);
mitätönsetBreadth(intb);
intalueella();
};

luokka Cube_Class:public Rectangle_Class
{
yksityinen:
intkorkeus;
julkinen:
Cube_Class(inth)
{
korkeus=h;
}
intgetHeight()
{
palatakorkeus;
}
mitätönsetHeight(inth)
{
korkeus=h;
}
intäänenvoimakkuutta()
{
palatagetLength()*getBreadth()*korkeus;
}
};


Suorakulmion_luokka::Suorakulmion_luokka()
{
pituus=1;
leveys=1;
}
Suorakulmion_luokka::Suorakulmion_luokka(intthe,intb)
{
pituus=the;
leveys=b;
}
Suorakulmion_luokka::Suorakulmion_luokka(Suorakulmion_luokka&r)
{
pituus=r.pituus;
leveys=r.leveys;
}
mitätönSuorakulmion_luokka::setLength(intthe)
{
pituus=the;
}
mitätönSuorakulmion_luokka::setBreadth(intb)
{
leveys=b;
}
intSuorakulmion_luokka::alueella()
{
palatapituus*leveys;
}

inttärkein()
{
Kuutio_luokka c(8);
c.setLength(12);
c.setBreadth(9);
kustannus<<'Äänenvoimakkuus on'<<c.äänenvoimakkuutta()<<endl;
}

Johtopäätös:

Tässä artikkelissa olen selittänyt perinnön käsitteen C ++ . C ++ tukee erilaisia ​​perintötyyppejä, mukaan lukien moninkertainen perintö (eli ominaisuuksien periminen usealta perusluokalta tai pääluokalta). Yksinkertaistamiseksi olen kuitenkin harkinnut täällä vain yksittäistä perintöä. Olen näyttänyt kolme toimivaa esimerkkiä selittääksemme, kuinka voimme käyttää perintöä C ++ -ohjelmoinnissa ja käyttää koodia uudelleen. Lisäksi tämä on erittäin hyödyllinen C ++: n ominaisuus.