Le interfacce in C ++ sono applicate usando classi astratte. D'altra parte, una classe è chiamata classe astratta se almeno una funzione all'interno di una classe è dichiarata come una pura funzione virtuale.
Qual è la pura funzione virtuale
IL Pura funzione virtuale significa che gli utenti dichiarano semplicemente la funzione e non la sua definizione. Metodo/funzione sovraccarico viene utilizzato per implementare metodi virtuali puri alla classe derivata. Una funzione è considerata virtuale pura se descritta all'interno della classe come indicato di seguito:
Ecco la sintassi di a Pura funzione virtuale di classe.
aula
pubblico:
// Funzione virtuale pura
Virtual double getArea () = 0;
privato:
doppia lunghezza; // lunghezza di una stanza
doppia larghezza; // larghezza di una stanza
;
Cos'è la classe astratta
Una classe che è stata creata appositamente allo scopo di servire come classe di base è chiamata un classe astratta. Almeno una funzione virtuale pura deve essere presente nella classe astratta. Può includere variabili e funzioni standard. Le classi derivate che la classe astratta ha, dovrebbero implementare una pura funzione virtuale della classe base, oppure diventeranno astratti.
Considera l'esempio seguente, in cui la classe genitore fornisce un'interfaccia a una classe di base in modo che la classe base si applichi a una funzione virtuale pura chiamata getArea (). Due classi diverse usano lo stesso getArea () funzione, ma l'output per entrambi i casi sarà diverso.
#includere
Utilizzo dello spazio dei nomi std;
forma di classe
pubblico:
virtual int getArea () = 0;
void setwidth (int wth)
larghezza = wth;
void setLength (int lth)
lunghezza = lth;
protetto:
int larghezza;
lunghezza int;
;
Rettangolo di classe: forma pubblica
pubblico: int getArea ()
restituire (larghezza *lunghezza);
;
Triangolo di classe: forma pubblica
pubblico: int getArea ()
restituire (larghezza *lunghezza) / 2;
;
int main (vuoto)
Rettangolo R;
Triangolo 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;
restituzione 0;
Produzione
Importanza delle interfacce
Qualsiasi classe derivata da una classe astratta pura (interfaccia) dovrebbe sempre implementare ciascuno dei metodi della classe base, i.e., Interfaccia. I puntatori dell'interfaccia potrebbero essere passati alle funzioni e alle classi, permettendoci di chiamare le funzioni della classe derivata da lì.
Quali sono le regole per l'utilizzo delle interfacce
Ci sono seguenti regole che gli utenti dovrebbero seguire per l'utilizzo delle interfacce in C ++:
Nel codice seguente, un'interfaccia Linuxhint, Come è stata creata una classe astratta utilizzando un metodo virtuale puro, nonché la sua funzione viene applicata nella classe figlio e abbiamo chiamato Returning () Metodo nella funzione principale seguendo le regole dell'interfaccia.
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
Classe Linuxhint
pubblico:
Virtual String ReturnString () = 0;
;
Classe Child: Public Linuxhint
pubblico:
String ReturnString ()
restituire "ciao linuxhint";
;
int main ()
figlio Child_Object;
Linuxhint* pntr;
pntr = & child_object;
coutrestituzione 0;
Produzione
Conclusione
Le interfacce sono classi astratte che descrivono il comportamento della classe che necessita di implementare la classe richiesta in C++. Le linee guida sopra menzionate sono fondamentali per un principiante per migliorare le loro capacità di programmazione C ++ lavorando con le interfacce. Troverai anche alcuni esempi che ti aiuteranno a imparare l'implementazione delle interfacce in C++.