V tomto článku sa chystáme diskutovať o koncepcii dedičnosti v programovaní v C ++. Pojem priateľská funkcia v C ++ si vysvetlíme na pracovných príkladoch.
Prečo dedičstvo?
Dedičstvo umožňuje vytvorenie novej triedy alebo odvodenej triedy z inej triedy alebo základnej triedy. Odvodená trieda alebo podradená trieda bude mať všetky funkcie nadradenej triedy alebo základnej triedy. Kód môžeme znova použiť pomocou dedičstva.
Typ dedičstva
Existujú rôzne typy dedičstva:
- Jednoduché / jednoduché dedičstvo
- Hierarchické dedičstvo
- Viacúrovňové dedičstvo
- Viacnásobné dedičstvo
V tomto článku budeme uvažovať iba o jednoduchom / jednoduchom dedičstve.
Príklad 1:
Poďme sa teraz pozrieť na ukážkový program, aby sme pochopili pojem dedičnosti v jazyku C++. Definovali sme základnú triedu a potom sme z nej odvodili inú triedu. Preto bude mať odvodená trieda vlastnosti (členy a funkcie) zo základnej triedy.
#includepomocou namespace std;
trieda Base_Class
verejné:
int i;
neplatné zobrazenie ()
cout << "Display of Base Class " << i << endl;
;
trieda Derived_Class: verejná Base_Class
verejné:
neplatná šou ()
cout << "Show of Derived Class" << endl;
;
int main ()
Derived_Class dc;
dc.i = 100;
dc.displej ();
dc.šou();
návrat 0;
Príklad 2:
Toto je ďalší príklad dedičstva v C++. V tomto príklade uvidíme, ako sa volajú konštruktory, keď sa vytvorí objekt odvodenej triedy.
Ako vidíte nižšie, definovali sme dva konštruktory základnej triedy a tri konštruktory odvodenej triedy. Z nižšie uvedeného výstupu si môžete jasne všimnúť, že najskôr sa volá konštruktor základnej triedy predtým, ako sa volá konštruktor odvodenej triedy.
#include#include
pomocou namespace std;
trieda Base_Class
verejné:
Base_Class ()
cout << "Base_Class - No Parameters" << endl;
Base_Class (int x)
cout << "Base_Class - Parameters : " << x << endl;
;
trieda Derived_Class: verejná Base_Class
verejné:
Derived_Class ()
cout << "Derived_Class - No Parameters" << endl;
Derived_Class (int y)
cout << "Derived_Class - Parameters : " << y << endl;
Derived_Class (int x, int y): Base_Class (x)
cout << "Param of Derived_Class : " << y << endl;
;
int main ()
Odvodená trieda d (7,19);
Príklad 3:
V tomto príklade sa dozvieme, ako je možné použiť objekty odvodenej triedy.
Ako vidíte, sú definované dve triedy: Rectangle_Class a Cube_Class. Rectangle_Class je základná trieda, z ktorej je odvodená trieda, t.e., Cube_Class je odvodená. Preto dedíme funkcie z Rectangle_Class na Cube_Class.
Tiež si môžete všimnúť, že dedíme Cube_Class s kontrolou verejného prístupu. To znamená, že odvodená trieda má prístup ku všetkým neverejným členom základnej triedy.
Deklarovali sme objekt odvodenej triedy a potom zavoláme metódy zo základnej triedy, t.j.e., setLength () a setBreadth ().
#includepomocou namespace std;
trieda Obdĺžnik_Class
súkromné:
int dĺžka;
int šírka;
verejné:
Rectangle_Class ();
Rectangle_Class (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()
dĺžka návratu;
int getBreadth ()
vrátiť šírku;
void setLength (int l);
void setBreadth (int b);
int area ();
;
trieda Cube_Class: verejná Rectangle_Class
súkromné:
int výška;
verejné:
Cube_Class (int h)
výška = h;
int getHeight ()
návratová výška;
void setHeight (int h)
výška = h;
objem int ()
návrat getLength () * getBreadth () * výška;
;
Rectangle_Class :: Rectangle_Class ()
dĺžka = 1;
šírka = 1;
Rectangle_Class :: Rectangle_Class (int l, int b)
dĺžka = l;
šírka = b;
Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)
dĺžka = r.dĺžka;
šírka = r.šírka;
void Rectangle_Class :: setLength (int l)
dĺžka = l;
void Rectangle_Class :: setBreadth (int b)
šírka = b;
int Rectangle_Class :: area ()
dĺžka návratu * šírka;
int main ()
Cube_Class c (8);
c.setLength (12);
c.setBreadth (9);
cout<<"Volume is "<
Záver:
V tomto článku som vysvetlil koncept dedenia v C++. C ++ podporuje rôzne typy dedičstva vrátane „viacnásobného dedičstva“ (t.j.e., dedenie funkcií z viacerých základných tried alebo nadradených tried). Aby som to však zjednodušil, uvažoval som tu iba o jednoduchom dedičstve. Ukázal som tri pracovné príklady, ktoré vysvetľujú, ako môžeme využiť dedičnosť v programovaní v C ++ a znovu použiť kód. Toto je navyše veľmi užitočná vlastnosť jazyka C++.