Beispiel Nr. 1
Die abstrakte Klasse „S“ und ihre Mitglieder sind im folgenden Beispiel aufgebaut:
#enthalten
Verwenden von Namespace STD;
Klasse S
öffentlich:
virtual int Area () = 0;
void setwidth (int a)
wid = a;
void setheight (int b)
hght = b;
geschützt:
int wid;
int hght;
;
Klasse Rechteck: public s
öffentlich:
int Area ()
return (wid * hght);
;
Klassendreieck: public s
öffentlich:
int Area ()
return (wid * hght)/2;
;
int main ()
Rechteck Rec;
Dreieck Tri;
Rec.Setwidth (15);
Rec.Seteight (50);
Tri.Setwidth (70);
Tri.Seteight (88);
Cout << "The calculated area of the required rectangle: " << Rec.Area() << endl;
Cout << "The calculated area of the required triangle: " << Tri.Area() << endl;
Zu Beginn des Programms werden wir die erforderliche Bibliothek aufnehmen . Dann haben wir den Standard -Namespace als STD verwendet. Jetzt werden wir die Klasse mit dem Namen "S" einrichten. Wir deklarieren öffentlich eine virtuelle Methode. Die virtuelle Funktion, die wir hier verwendet haben, ist Area (). Dann werden wir die Funktionsetwidth () anwenden. Die Breite der Form kann mit dieser Funktion angegeben werden. Der Wert der Breite wird in einer Variablen „A“ gespeichert.
Jetzt werden wir den Wert der Höhe der Form angeben, sodass wir die Funktion Setheight () verwendet haben. Wir initialisieren eine variable „B“, um die Höhe der Form zu speichern. Wir setzen die Werte von Breite und Höhe als geschützt. Der Datentyp sowohl der Breite als auch der Höhe ist eine Ganzzahl. In der nächsten Zeile werden wir eine Rechteckform der Klasse aus der Klasse „S“ erben. Hier finden wir den Bereich des Rechtecks, sodass die Area () -Methode angewendet wird. Es gibt den Bereich eines Rechtecks zurück, indem der Wert der Breite mit dem Wert des Rechtecks multipliziert wird.
Nach all dem werden wir eine andere Form, "Dreieck", aus der Klasse "S" erben. Jetzt wenden wir die Formeln an, um den Bereich des Dreiecks zu erhalten. Die Bereich der Area () wird aufgerufen. Dies gibt den resultierenden Wert zurück. Wir erhalten den Bereich eines Dreiecks, indem wir die Breite mit der Höhe multiplizieren und dann den Wert durch 2 teilen. Darüber hinaus werden wir die main () -Funktion nennen. Wir definieren die Objekte beider Klassen, Rechtecke und Dreiecke.
Jetzt müssen wir die Werte der Breite und Höhe des Rechtecks und des Dreiecks einstellen, indem wir die Methoden Setwidth () und SetRectangle () entsprechend verwenden. Am Ende haben wir die Anweisung „Cout“ verwendet, um den berechneten Bereich des Rechtecks und des Dreiecks anzuzeigen.
Beispiel Nr. 2
Klassen, die von einer abstrakten Klasse erben. Wir werden die Instanz ausführen, in der wir die Klassen aus der abstrakten Klasse erben:
#enthalten
Verwenden von Namespace STD;
Klassenbasis
int n;
öffentlich:
virtuelle void f () = 0;
int geta () return n;
;
Klasse abgeleitet: öffentliche Basis
int m;
öffentlich:
void f () Cout << "f() is being called";
;
int main (void)
Abgeleitet x;
X.F();
Rückkehr 0;
Zuerst haben wir die Header -Datei integriert . Zusammen mit diesem verwenden wir den Standard -Namespace als STD. Dann definieren wir die Klasse, die als "Basis" bezeichnet wird. Innerhalb dieser Klasse initialisieren wir eine Variable „n“ und der Datentyp dieser Variablen wird als Ganzzahl festgelegt. Hier nennen wir die Funktion dieser Klasse und setzen diese Funktionen als öffentlich. Wir haben die void f () -Methode der Klasse "Basis" aufgerufen. Dann verwenden wir auch die Get () -Funktion.
Darüber hinaus werden wir die abgeleitete Klasse der übergeordneten Klasse erben. Infolgedessen leiten wir die Basisklasse daraus ab. Innerhalb der abgeleiteten Klasse werden wir eine Variable „M“ deklarieren. Jetzt nennen wir die Funktion void f () öffentlich. Innerhalb dieser Funktion wurde die Anweisung „Cout“ verwendet, um die Zeile auf dem Bildschirm anzuzeigen. Beginnen wir den Code im Körper der Main () -Funktion. Dazu müssen wir zuerst die Haupt () -Funktion aufrufen. Wir nennen die Funktion f (), die der abgeleiteten Klasse zugeordnet ist. Wir haben den Befehl "return 0" am Ende des Codes angewendet.
Beispiel Nr. 3
Konstruktoren können in einer abstrakten Klasse vorhanden sein. Wir werden den Konstruktor in der nachfolgenden Abbildung erstellen:
#enthalten
Verwenden von Namespace STD;
Klasse b
geschützt:
int u;
öffentlich:
virtuelle void f () = 0;
Basis (int m)
U = m;
Cout<<"Calling the base constructor\n";
;
Klasse abgeleitet: öffentlich B
im Fernsehen;
öffentlich:
Abgeleitet (int m, int n): b (m) v = n;
void f () Cout << "u = " << u << ", v = " << vRückkehr 0;
Hier haben wir das Modul aufgenommen . Dann schließen wir den Standard -Namespace als STD ein. Wir werden die Basisklasse mit dem Konstruktor konstruieren. Hier fungiert die Basisklasse als abstrakte Klasse. Wir werden die Variable "u" initialisieren und sie so einstellen, dass sie geschützt werden. Zuerst haben wir die void f () Funktion aufgerufen. Darüber hinaus werden wir die Base () -Funktion aufrufen. Diese Funktion enthält eine Variable als Argument. Wir haben die Anweisung "Cout" in dieser Funktion verwendet. Wir werden die abgeleitete Klasse im folgenden Schritt aus der „Basis“ -Klasse erben. Innerhalb der abgeleiteten Klasse werden wir eine Variable „V“ initialisieren,.
Jetzt nennen wir öffentlich die abgeleitete Funktion (). Wir übergeben zwei Variablen als Parameter. Wir nennen die Funktion b (). Dann heißt die void f () genannt. Innerhalb dieser Funktion wurde die Anweisung „Cout“ angewendet, um die Werte anzuzeigen. Wir müssen die Main () -Funktion aufrufen. Hier konstruieren wir das abgeleitete Klassenobjekt. Diese Funktion enthält zwei Werte als Attribut. Wir nennen die Funktion f (), die der abgeleiteten Klasse zugeordnet ist. Wir geben den Befehl „Rückgabe 0“ ein, um das Programm zu beenden.
Abschluss
Wir haben die abstrakte Klasse in C ++ in diesem Tutorial durchgemacht. Abstrakte Klassenelemente sind schwer zu erstellen. In C ++ ist eine abstrakte Methode eine virtuelle Methode, die eine Definition haben kann. Die abgeleitete Klasse würde jedoch die abstrakte Methode außer Kraft setzen, um zu verhindern, dass die abgeleitete Klasse auch zu einer abstrakten Klasse wird. Die Zuteilung von 0 während der Deklaration erzeugt eine virtuelle Methode.