U ovom ćemo članku razgovarati o konceptu nasljeđivanja u programiranju na C ++. Objasnit ćemo pojam funkcije prijatelja u jeziku C ++ na radnim primjerima.
Zašto nasljeđivanje?
Nasljeđivanje omogućuje stvaranje nove klase ili izvedene klase iz druge klase ili osnovne klase. Izvedena klasa ili podređena klasa imat će sve značajke roditeljske klase ili osnovne klase. Kod možemo ponovno upotrijebiti uz pomoć nasljeđivanja.
Vrsta nasljeđivanja
Postoje različite vrste nasljeđivanja:
- Jednostavno / jedno nasljeđivanje
- Hijerarhijsko nasljeđivanje
- Nasljeđivanje na više razina
- Višestruko nasljeđivanje
U ovom ćemo članku razmotriti samo jednostavno / jedno nasljeđivanje.
Primjer 1:
Pogledajmo sada primjer programa za razumijevanje koncepta nasljeđivanja u jeziku C++. Definirali smo osnovnu klasu, a zatim iz nje izveli drugu klasu. Stoga će izvedena klasa imati značajke (članove i funkcije) iz osnovne klase.
#includepomoću prostora imena std;
razred Base_Class
javnost:
int i;
prikaz praznine ()
cout << "Display of Base Class " << i << endl;
;
razred Izvedeni_razred: javni Base_Class
javnost:
poništenje emisije ()
cout << "Show of Derived Class" << endl;
;
int main ()
Izvedeni_razred dc;
dc.i = 100;
dc.prikaz();
dc.pokazati();
return 0;
Primjer 2:
Ovo je još jedan primjer nasljeđivanja u C++. U ovom ćemo primjeru vidjeti kako se pozivaju konstruktori kada se kreira izvedeni objekt klase.
Kao što možete vidjeti dolje, definirali smo dva konstruktora osnovne klase i tri konstruktora izvedene klase. Iz donjeg rezultata možete jasno primijetiti da se konstruktor osnovne klase poziva prije nego što se pozove konstruktor izvedene klase.
#include#include
pomoću prostora imena std;
razred Base_Class
javnost:
Osnovni_razred ()
cout << "Base_Class - No Parameters" << endl;
Osnovni_razred (int x)
cout << "Base_Class - Parameters : " << x << endl;
;
razred Izvedeni_razred: javni Base_Class
javnost:
Izvedeni_razred ()
cout << "Derived_Class - No Parameters" << endl;
Izvedeni_razred (int y)
cout << "Derived_Class - Parameters : " << y << endl;
Izvedeni_razred (int x, int y): Osnovni_razred (x)
cout << "Param of Derived_Class : " << y << endl;
;
int main ()
Izvedeni_razred d (7,19);
Primjer 3:
U ovom ćemo primjeru vidjeti kako se izvedeni objekti klase mogu koristiti.
Kao što vidite, definirane su dvije klase: Rectangle_Class i Cube_Class. Rectangle_Class je osnovna klasa iz koje izvedena klasa, tj.e., Izvedena je Cube_Class. Stoga nasljeđujemo značajke iz Rectangle_Class u Cube_Class.
Također, možete primijetiti da nasljeđujemo Cube_Class s javnom kontrolom pristupa. To znači da izvedena klasa može pristupiti svim ne-privatnim članovima osnovne klase.
Proglasili smo objekt izvedene klase, a zatim pozvali metode iz osnovne klase, tj.e., setLength () i setBreadth ().
#includepomoću prostora imena std;
razred Rectangle_Class
privatni:
int dužina;
int širina;
javnost:
Pravokutnik_Klasa ();
Klasa pravokutnika (int l, int b);
Klasa pravokutnika (Rectangle_Class & r);
int getLength ()
povratna duljina;
int getBreadth ()
vratiti širinu;
praznina setLength (int l);
void setBreadth (int b);
int područje ();
;
klasa Cube_Class: javni Rectangle_Class
privatni:
visina int;
javnost:
Cube_Class (int h)
visina = h;
int getHeight ()
povratna visina;
void setHeight (int h)
visina = h;
int volumen ()
return getLength () * getBreadth () * visina;
;
Rectangle_Class :: Rectangle_Class ()
duljina = 1;
širina = 1;
Klasa pravokutnika :: Klasa pravokutnika (int l, int b)
duljina = l;
širina = b;
Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)
duljina = r.duljina;
širina = r.širina;
void Rectangle_Class :: setLength (int l)
duljina = l;
void Rectangle_Class :: setBreadth (int b)
širina = b;
int Rectangle_Class :: area ()
povratna dužina * širina;
int main ()
Kocka_razreda c (8);
c.setLength (12);
c.setBreadth (9);
cout<<"Volume is "<
Zaključak:
U ovom sam članku objasnio pojam nasljeđivanja u C++. C ++ podržava različite vrste nasljeđivanja, uključujući "višestruko nasljeđivanje" (tj.e., nasljeđivanje značajki iz više osnovnih razreda ili roditeljske klase). Međutim, da to pojednostavim, ovdje sam razmatrao samo jedno nasljedstvo. Pokazao sam tri radna primjera kako bih objasnio kako možemo koristiti nasljeđivanje u programiranju na C ++ i ponovno koristiti kôd. Štoviše, ovo je vrlo korisna značajka C-a++.