Dziedziczenie C ++

Dziedziczenie C ++
Dziedziczenie jest bardzo ważną cechą programowania obiektowego. Pozwala programistowi wyprowadzić klasę z istniejącej klasy. Jest to bardzo przydatne, szczególnie w dużym złożonym projekcie, ponieważ umożliwia programistę ponowne wykorzystanie kodu.

W tym artykule omówimy koncepcję dziedzictwa w programowaniu C ++. Wyjaśnimy koncepcję funkcji znajomego w C ++ z pracownikami.

Dlaczego dziedzictwo?

Dziedziczenie umożliwia utworzenie nowej klasy lub klasy pochodnej z innej klasy lub klasy podstawowej. Klasa pochodna lub klasa dziecięca będą miały wszystkie cechy klasy nadrzędnej lub klasy podstawowej. Możemy ponownie użyć kodu za pomocą dziedzictwa.

Rodzaj dziedziczenia

Istnieją różne rodzaje dziedzictwa:

  1. Proste/pojedyncze dziedzictwo
  2. Hierarchiczne dziedzictwo
  3. Dziedziczenie wielopoziomowe
  4. Wiele dziedzictwa

W tym artykule rozważymy tylko proste/pojedyncze dziedzictwo.

Przykład 1:

Teraz przyjrzyjmy się przykładowi programu, aby zrozumieć pojęcie dziedziczenia w C++. Zdefiniowaliśmy klasę podstawową, a następnie wyprowadziliśmy z niej inną klasę. Dlatego klasa pochodna będzie miała cechy (członki i funkcje) z klasy podstawowej.

#włączać
za pomocą przestrzeni nazw Std;
klasa base_class

publiczny:
int i;
void wyświetlacz ()

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

;
klasa Derived_Class: public base_class

publiczny:
void show ()

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

;
int main ()

Derived_class dc;
DC.i = 100;
DC.wyświetlacz();
DC.pokazywać();
powrót 0;

Przykład 2:

To kolejny przykład dziedziczenia w C++. W tym przykładzie zobaczymy, jak wywoływane są konstruktory, gdy tworzony jest obiekt klasy pochodnej.

Jak widać poniżej, zdefiniowaliśmy dwa konstruktory klas podstaw. Z poniższego wyjścia wyraźnie można zauważyć, że konstruktor klasy podstawowej jest nazywany najpierw, zanim wywołany konstruktor klas pochodnych zostanie wywołany.

#włączać
za pomocą przestrzeni nazw Std;
klasa base_class

publiczny:
Base_class ()

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

Base_class (int x)

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

;
klasa Derived_Class: public base_class

publiczny:
Klasy pochodnej()

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

Derived_class d (7,19);

Przykład 3:

W tym przykładzie zobaczymy, w jaki sposób można użyć obiektów klasowych.

Jak widać, są zdefiniowane dwie klasy: prostokąta i cuble_class. Prostokada jest klasą podstawową, z której klasa pochodna, i.mi., Cube_class jest wyprowadzony. Dlatego dziedziczymy funkcje z prostokąt_class do cube_class.

Możesz także zauważyć, że dziedziczymy Cube_Class z publiczną kontrolą dostępu. Oznacza to, że klasa pochodna może uzyskać dostęp do wszystkich członków nie-prywatnych klasy podstawowej.

Zadeklarowaliśmy obiekt klasy pochodnej, a następnie wywołaliśmy metody z klasy podstawowej, i.mi., setLength () i setbreadth ().

#włączać
za pomocą przestrzeni nazw Std;
klasa prostokąt_class

prywatny:
długość;
Int szerokość;
publiczny:
Prostokąt_class ();
Rectangle_class (int l, int b);
Prostokąta_class (Rectangle_Class & r);
int getLength ()

długość powrotu;

int getBreadth ()

Powrót szerokości;

void setLength (int l);
void setbreadth (int b);
Int obszar ();
;
klasa Cube_Class: Public Rectangle_class

prywatny:
int wzrost;
publiczny:
Cube_class (int h)

wysokość = h;

int getheight ()

Wysokość powrotu;

Void Setheight (int H)

wysokość = h;

int tom ()

return getLength ()*getBreadth ()*wysokość;

;
Rectangle_Class :: prostokąt_class ()

długość = 1;
szerokość = 1;

Rectangle_Class :: Rectangle_class (int l, int b)

długość = l;
szerokość = b;

Rectangle_Class :: Rectangle_class (Rectangle_Class & r)

długość = r.długość;
szerokość = r.szerokość;

void Rectangle_Class :: setLength (int l)

długość = l;

void Rectangle_Class :: setbreadth (int b)

szerokość = b;

int prostokąt_class :: area ()

długość powrotu*szerokość;

int main ()

Cube_class c (8);
C.SetLength (12);
C.setbreadth (9);
Cout<<"Volume is "<

Wniosek:

W tym artykule wyjaśniłem pojęcie dziedziczenia w C++. C ++ obsługuje różne rodzaje dziedziczenia, w tym „wielokrotne dziedziczenie” (i.mi., Dziedziczenie funkcji po wielu klasie podstawowej lub klasie nadrzędnej). Jednak, aby było to prostsze, rozważałem tutaj tylko pojedyncze dziedzictwo. Pokazałem trzy przykłady robocze, aby wyjaśnić, w jaki sposób możemy użyć dziedziczenia w programowaniu C ++ i ponownie wykorzystać kod. Co więcej, jest to bardzo przydatna funkcja C++.