Schnittstellen in C ++ werden unter Verwendung abstrakter Klassen angewendet. Andererseits wird eine Klasse als abstrakte Klasse bezeichnet, wenn mindestens eine Funktion in einer Klasse als reine virtuelle Funktion deklariert wird.
Was ist die reine virtuelle Funktion?
Der Reine virtuelle Funktion bedeutet, dass Benutzer nur die Funktion und nicht ihre Definition deklarieren. Überschreiben von Methoden/Funktion wird verwendet, um reine virtuelle Methoden in der abgeleiteten Klasse zu implementieren. Eine Funktion wird als rein virtuell angesehen, wenn sie in der Klasse wie unten angegeben beschrieben wird:
Hier ist die Syntax von a Reine virtuelle Funktion des Klassenzimmers.
Klassenzimmer
öffentlich:
// reine virtuelle Funktion
virtueller doppelter GetArea () = 0;
Privatgelände:
doppelte Länge; // Länge eines Raums
doppelte Breite; // Breite eines Raumes
;
Was ist abstrakte Klasse
Eine Klasse, die speziell für den Zweck der dienen als Basisklasse erstellt wurde abstrakte Klasse. Mindestens eine reine virtuelle Funktion muss in der abstrakten Klasse vorhanden sein. Es kann Variablen und Standardfunktionen enthalten. Die abgeleiteten Klassen, die die abstrakte Klasse hat, sollte eine reine virtuelle Funktion der Basisklasse implementieren, oder sie werden abstrakt.
Betrachten Sie das folgende Beispiel, in dem die übergeordnete Klasse eine Schnittstelle zu einer Basisklasse angibt, damit die Basisklasse eine reine virtuelle Funktion anwenden nennt GetArea (). Zwei verschiedene Klassen verwenden dasselbe GetArea () Funktion, aber die Ausgabe für beide Fälle ist unterschiedlich.
#enthalten
Verwenden von Namespace STD;
Klassenform
öffentlich:
virtual int getArea () = 0;
Void Setwidth (int wth)
Breite = WTH;
Hohlräume (int lth)
Länge = lth;
geschützt:
int Breite;
int Länge;
;
Klassenrechteck: öffentliche Form
öffentlich: int GetArea ()
return (Breite *Länge);
;
Klassendreieck: öffentliche Form
öffentlich: int GetArea ()
return (Breite *Länge) / 2;
;
int main (void)
Rechteck R;
Dreieck t;
R.Setwidth (9);
R.SetLength (5);
Cout << "Area of Rectangle: " << R.getArea() << endl;
T.Setwidth (9);
T.SetLength (5);
Cout << "Area of Triangle: " << T.getArea() << endl;
Rückkehr 0;
Ausgang
Bedeutung von Schnittstellen
Jede Klasse, die aus einer reinen abstrakten Klasse (Schnittstelle) abgeleitet ist, sollte immer jede der Methoden der Basisklasse implementieren, i.e., Schnittstelle. Schnittstellenzeiger könnten sowohl an die Funktionen als auch an Klassen übergeben werden, sodass wir die Funktionen der abgeleiteten Klasse von dort aus selbst aufrufen können.
Was sind die Regeln für die Verwendung von Schnittstellen
Die folgenden Regeln sollten Benutzer befolgen, um Schnittstellen in C ++ zu verwenden:
Im folgenden Code eine Schnittstelle LinuxHint, Wie eine abstrakte Klasse wurde unter Verwendung einer reinen virtuellen Methode erstellt, und ihre Funktion wird in der Kinderklasse angewendet, und wir haben die genannt returnString () Methode in der Hauptfunktion durch Befolgen der Schnittstellenregeln.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
Klasse LinuxHint
öffentlich:
Virtual String returnString () = 0;
;
Klassenkind: Public LinuxHint
öffentlich:
String returnString ()
zurück "Hallo LinuxHint";
;
int main ()
Child Child_Object;
LinuxHint* pntr;
pntr = & child_object;
CoutRückkehr 0;
Ausgang
Abschluss
Schnittstellen sind abstrakte Klassen, die das Klassenverhalten beschreiben, das die erforderliche Klasse in C implementieren muss++. Die oben genannten Richtlinien sind für einen Anfänger von entscheidender Bedeutung, um seine C ++-Programmierkenntnisse durch die Arbeit mit den Schnittstellen zu verbessern. Sie finden auch einige Beispiele, die Ihnen helfen, die Implementierung von Schnittstellen in C zu lernen++.