C ++ Vererbung

C ++ Vererbung
Vererbung ist ein sehr wichtiges Merkmal der objektorientierten Programmierung. Der Programmierer kann eine Klasse von einer vorhandenen Klasse ableiten. Dies ist besonders in einem großen komplexen Projekt sehr nützlich, da der Programmierer den Code wiederverwendet hat.

In diesem Artikel werden wir das Erbschaftskonzept in der C ++ - Programmierung diskutieren. Wir werden das Konzept der Freundschaftsfunktion in C ++ anhand von Beispielen erklären.

Warum Vererbung?

Die Erbschaft ermöglicht das Erstellen einer neuen Klasse oder eine abgeleitete Klasse aus einer anderen Klasse oder Basisklasse. Die abgeleitete Klasse oder die untergeordnete Klasse hat alle Funktionen der Elternklasse oder der Basisklasse. Wir können den Code mit Hilfe des Erbs wiederverwenden.

Vererbungsart

Es gibt verschiedene Arten der Vererbung:

  1. Einfacher/einzelner Vererbung
  2. Hierarchische Erbe
  3. Mehrebenenvererbung
  4. Multiple Vererbung

In diesem Artikel werden wir nur ein einfaches/einzelnes Erbe betrachten.

Beispiel 1:

Lassen Sie uns nun ein Beispielprogramm untersuchen, um das Konzept der Vererbung in C zu verstehen++. Wir haben eine Basisklasse definiert und dann eine andere Klasse daraus abgeleitet. Daher verfügt die abgeleitete Klasse über die Funktionen (Mitglieder und Funktionen) aus der Basisklasse.

#enthalten
Verwenden von Namespace STD;
Klasse Base_class

öffentlich:
int i;
void Display ()

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

;
Klasse abgeleitet_class: public base_class

öffentlich:
void show ()

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

;
int main ()

Abgeleitet_class dc;
DC.i = 100;
DC.Anzeige();
DC.zeigen();
Rückkehr 0;

Beispiel 2:

Dies ist ein weiteres Beispiel für die Vererbung in C++. In diesem Beispiel werden wir sehen, wie die Konstruktoren aufgerufen werden, wenn ein abgeleitetes Klassenobjekt erstellt wird.

Wie Sie unten sehen können, haben wir zwei Basisklassenkonstruktoren und drei abgeleitete Klassenkonstruktoren definiert. Sie können aus der folgenden Ausgabe deutlich feststellen, dass der Basisklassenkonstruktor zuerst aufgerufen wird, bevor der abgeleitete Klassenkonstruktor aufgerufen wird.

#enthalten
Verwenden von Namespace STD;
Klasse Base_class

öffentlich:
Base_class ()

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

Base_class (int x)

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

;
Klasse abgeleitet_class: public base_class

öffentlich:
Abgeleitete Klasse()

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

Abgeleitet_class (int y)

Cout << "Derived_Class - Parameters : " << y << endl;

DEDIVED_CLASS (int x, int y): Base_class (x)

Cout << "Param of Derived_Class : " << y << endl;

;
int main ()

Abgeleitet_class d (7,19);

Beispiel 3:

In diesem Beispiel werden wir sehen, wie abgeleitete Klassenobjekte verwendet werden können.

Wie Sie sehen können, gibt es zwei Klassen definiert: Rechteck_class und cobe_class. Die Rechteckklasse ist die Basisklasse, aus der die abgeleitete Klasse, ich.e., CUBE_CLASS wird abgeleitet. Daher erben wir die Merkmale von der Rechteck -Klasse zu CUBE_CLASS.

Sie können auch feststellen. Dies bedeutet, dass die abgeleitete Klasse auf alle nicht privaten Mitglieder der Basisklasse zugreifen kann.

Wir haben ein Objekt der abgeleiteten Klasse deklariert und dann die Methoden aus der Basisklasse aufrufen, ich.e., setLength () und setBreadth ().

#enthalten
Verwenden von Namespace STD;
Klasse Rechteck. Klasse

Privatgelände:
int Länge;
int Breite;
öffentlich:
Rechteckel_class ();
Rechteck -Klasse (int l, int b);
Rechteck -Klasse (Rechteck -Klasse & r);
int getLength ()

Rücklauflänge;

int getBreadth ()

Breite zurück;

void setLength (int l);
void setBreadth (int b);
int Area ();
;
Klasse cube_class: öffentliches rechteck_class

Privatgelände:
int Höhe;
öffentlich:
Cube_class (int h)

Höhe = H;

int getheight ()

Renditehöhe;

void Seteight (int H)

Höhe = H;

int Volume ()

return getLength ()*getBreadth ()*Höhe;

;
Rechteckel_Class :: Rechteckel_Class ()

Länge = 1;
Breite = 1;

Rechteckel_Class :: Rechteckel_Class (int l, int b)

Länge = l;
Breite = B;

Rechteckel_Class :: Rectangle_class (Rechteck -Klasse & R)

Länge = r.Länge;
Breite = r.Breite;

void rectangle_class :: setLength (int l)

Länge = l;

void rectangle_class :: setBeadth (int b)

Breite = B;

int rechteckle_class :: aible ()

Rücklauflänge*Breite;

int main ()

CUBE_CLASS C (8);
C.SetLength (12);
C.setBeadth (9);
Cout<<"Volume is "<

Abschluss:

In diesem Artikel habe ich das Konzept der Vererbung in C erklärt++. Das C ++ unterstützt verschiedene Arten der Vererbung, einschließlich „multipler Vererbung“ (i.e., Erben von Funktionen aus mehreren Basisklassen oder übergeordneten Klasse). Um es jedoch einfacher zu machen, habe ich hier nur ein einzelnes Vererbung in Betracht gezogen. Ich habe drei Arbeitsbeispiele gezeigt, um zu erklären, wie wir die Vererbung in der C ++-Programmierung verwenden und den Code wiederverwenden können. Darüber hinaus ist dies ein sehr nützliches Merkmal von C++.