Was sind Schnittstellen in C ++?

Was sind Schnittstellen in C ++?
Schnittstellen, allgemein als abstrakte Klassen bezeichnet. Es gibt kein integriertes Konzept von Schnittstellen in der C ++-Programmierung. Um eine Schnittstelle zu erstellen, müssen wir zunächst nur eine abstrakte Klasse mit reinen virtuellen Funktionen festlegen.

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:

  • Nur reine virtuelle Funktionen deklarieren.
  • Nur 0 für reine virtuelle Funktionen zugewiesen.
  • Erstellen Sie nicht die Oberfläche der Klassen.
  • Unter Verwendung einer Referenz auf eine abstrakte Basisklasse können wir einen Zeiger auf eine Instanz der abgeleiteten Klasse erstellen.

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;
Cout Rü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++.