C ++

Moștenirea C ++

Moștenirea C ++
Moștenirea este o caracteristică foarte importantă a programării orientate pe obiecte. Permite programatorului să obțină o clasă dintr-o clasă existentă. Acest lucru este foarte util mai ales într-un proiect complex, deoarece permite programatorului să reutilizeze codul.

În acest articol, vom discuta conceptul de moștenire în programarea C ++. Vom explica conceptul funcției prieten în C ++ cu exemple de lucru.

De ce Moștenire?

Moștenirea permite crearea unei clase noi sau a unei clase derivate dintr-o altă clasă sau clasă de bază. Clasa derivată sau clasa copil va avea toate caracteristicile clasei părinte sau a clasei de bază. Putem reutiliza codul cu ajutorul moștenirii.

Tipul moștenirii

Există diferite tipuri de moștenire:

  1. Moștenire simplă / simplă
  2. Moștenirea ierarhică
  3. Moștenirea pe mai multe niveluri
  4. Moștenirea multiplă

În acest articol, vom lua în considerare doar moștenirea simplă / simplă.

Exemplul 1:

Acum, să analizăm un exemplu de program pentru a înțelege conceptul de moștenire în C++. Am definit o clasă de bază și apoi am derivat o altă clasă din aceasta. Prin urmare, clasa derivată va avea caracteristicile (membrii și funcțiile) din clasa de bază.

#include
folosind spațiul de nume std;
clasa Base_Class

public:
int i;
afișare nulă ()

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

;
clasa Derived_Class: public Base_Class

public:
spectacol nul ()

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

;
int main ()

Derived_Class dc;
DC.i = 100;
DC.afişa();
DC.spectacol();
retur 0;

Exemplul 2:

Acesta este un alt exemplu de moștenire în C++. În acest exemplu, vom vedea cum sunt numiți constructorii atunci când este creat un obiect de clasă derivat.

După cum puteți vedea mai jos, am definit doi constructori de clase de bază și trei constructori de clase derivate. Puteți observa clar din rezultatul de mai jos că constructorul clasei de bază este apelat mai întâi înainte de a fi chemat constructorul clasei derivate.

#include
#include
folosind spațiul de nume std;
clasa Base_Class

public:
Base_Class ()

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

Clasa_baza (int x)

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

;
clasa Derived_Class: public Base_Class

public:
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 ()

Derivat_Clasă d (7,19);

Exemplul 3:

În acest exemplu, vom vedea cum pot fi utilizate obiecte de clasă derivate.

După cum puteți vedea, există două clase definite: Rectangle_Class și Cube_Class. Rectangle_Class este clasa de bază din care clasa derivată, i.e., Cube_Class este derivat. Prin urmare, moștenim caracteristicile de la Rectangle_Class la Cube_Class.

De asemenea, puteți observa că moștenim Cube_Class cu controlul accesului public. Aceasta înseamnă că clasa derivată poate accesa toți membrii non-privați ai clasei de bază.

Am declarat un obiect al clasei derivate și apoi apelăm metodele din clasa de bază, i.e., setLength () și setBreadth ().

#include
folosind spațiul de nume std;
clasa Rectangle_Class

privat:
lungimea int;
int lățime;
public:
Rectangle_Class ();
Rectangle_Class (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

lungimea returului;

int getBreadth ()

întoarceți lățimea;

void setLength (int l);
void setBreadth (int b);
zona int ();
;
class Cube_Class: public Rectangle_Class

privat:
int inaltime;
public:
Cube_Class (int h)

înălțime = h;

int getHeight ()

înălțimea de întoarcere;

void setHeight (int h)

înălțime = h;

volum int ()

returnează getLength () * getBreadth () * înălțime;

;
Rectangle_Class :: Rectangle_Class ()

lungime = 1;
lățimea = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

lungime = l;
lățime = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

lungime = r.lungime;
lățime = r.lăţime;

void Rectangle_Class :: setLength (int l)

lungime = l;

void Rectangle_Class :: setBreadth (int b)

lățime = b;

int Rectangle_Class :: area ()

lungime retur * lățime;

int main ()

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

Concluzie:

În acest articol, am explicat conceptul de moștenire în C++. C ++ acceptă diferite tipuri de moștenire, inclusiv „moștenire multiplă” (i.e., moștenirea caracteristicilor din mai multe clase de bază sau clase părinte). Cu toate acestea, pentru ao simplifica, am luat în considerare aici doar o moștenire. Am arătat trei exemple de lucru pentru a explica cum putem folosi moștenirea în programarea C ++ și să reutilizăm codul. Mai mult, aceasta este o caracteristică foarte utilă a C++.

Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...