C ++

Nasljeđivanje C ++

Nasljeđivanje C ++
Nasljeđivanje je vrlo važna značajka objektno orijentiranog programiranja. Omogućuje programeru da izvede klasi iz postojeće klase. To je vrlo korisno, posebno u velikom složenom projektu, jer programeru omogućuje ponovnu upotrebu koda.

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:

  1. Jednostavno / jedno nasljeđivanje
  2. Hijerarhijsko nasljeđivanje
  3. Nasljeđivanje na više razina
  4. 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.

#include
pomoć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 ().

#include
pomoć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++.

Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...
Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...
Srednja tipka miša ne radi u sustavu Windows 10
The srednja tipka miša pomaže vam u pomicanju kroz dugačke web stranice i zaslone s puno podataka. Ako se to zaustavi, na kraju ćete koristiti tipkovn...