Quali sono le interfacce in C ++

Quali sono le interfacce in C ++
Le interfacce, comunemente note come classi astratte, sono solo una fonte di descrizione del comportamento della classe senza impegnarsi nell'implementazione della classe. Non esiste un concetto integrato di interfacce nella programmazione C ++. Per iniziare a creare un'interfaccia, dobbiamo prima stabilire una classe astratta solo con funzioni virtuali pure.

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 ++:

  • Dichiarare solo funzioni virtuali pure.
  • Assegnato solo 0 a pure funzioni virtuali.
  • Non creare l'interfaccia delle classi.
  • Usando un riferimento a una classe astratta di base, possiamo creare un puntatore a un'istanza della classe derivata.

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;
cout restituzione 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++.