Que sont les interfaces en C++

Que Sont Les Interfaces En C



Les interfaces, communément appelées classes abstraites, ne sont qu'une source de description du comportement de la classe sans s'être engagées dans l'implémentation de la classe. Il n'y a pas de concept intégré d'interfaces dans la programmation C++. Pour commencer à créer une interface, nous devons d'abord établir une classe abstraite uniquement avec des fonctions virtuelles pures.

Les interfaces en C++ sont appliquées à l'aide de classes abstraites. D'autre part, une classe est appelée une classe abstraite si au moins une fonction à l'intérieur d'une classe est déclarée comme une fonction virtuelle pure.

Qu'est-ce que la fonction virtuelle pure

Le Fonction virtuelle pure signifie que les utilisateurs déclarent simplement la fonction et non sa définition. Le remplacement de méthode/fonction est utilisé pour implémenter des méthodes virtuelles pures dans la classe dérivée. Une fonction est considérée comme purement virtuelle si elle est décrite à l'intérieur de la classe comme indiqué ci-dessous :







Voici la syntaxe d'un Fonction virtuelle pure de la salle de classe.



classe Chambre {
public :
// fonction virtuelle pure
virtuel double Getaria ( ) = 0 ;

privé :
double longueur ; // Longueur d'une pièce
double Largeur ; // Largeur d'une pièce
} ;

Qu'est-ce qu'une classe abstraite

Une classe qui a été créée spécifiquement dans le but de servir de classe de base est nommée classe abstraite . Au moins une fonction virtuelle pure doit être présente dans la classe abstraite. Il peut inclure des variables et des fonctions standard. Les classes dérivées que possède la classe abstraite doivent implémenter une fonction virtuelle pure de la classe de base, sinon elles deviendront abstraites.



Considérez l'exemple suivant, dans lequel la classe parent donne une interface à une classe de base afin que la classe de base applique une fonction virtuelle pure appelée getZone() . Deux classes différentes utilisent le même getZone() fonction, mais la sortie pour les deux cas sera différente.





#include
en utilisant espace de noms std ;
classe Forme
{
public :
virtuel entier Getaria ( ) = 0 ;
annuler définirLargeur ( entier avec )
{
largeur = avec ;
}

annuler setLength ( entier lth )
{
longueur = lth ;
}

protégé :
entier largeur ;
entier longueur ;
} ;

classe Rectangle : public Forme
{
public : entier Getaria ( )
{
retour ( largeur * longueur ) ;
}
} ;

classe Triangle : public Forme
{
public : entier Getaria ( )
{
retour ( largeur * longueur ) / 2 ;
}
} ;

entier principal ( annuler )
{
Rectangle R ;
Triangulaire T ;
R définirLargeur ( 9 ) ;
R setLength ( 5 ) ;
écoute << 'Aire du rectangle : ' << R Getaria ( ) << fin ;
T définirLargeur ( 9 ) ;
T setLength ( 5 ) ;
écoute << 'Aire du Triangle : ' << T Getaria ( ) << fin ;
retour 0 ;
}

Sortir



Importance des interfaces

Toute classe dérivée d'une classe abstraite pure (Interface) doit toujours implémenter chacune des méthodes de la classe de base, c'est-à-dire Interface. Des pointeurs d'interface pourraient être passés aux fonctions ainsi qu'aux classes, nous permettant d'appeler les fonctions de la classe dérivée à partir de là elle-même.

Quelles sont les règles d'utilisation des interfaces

Les utilisateurs doivent suivre les règles suivantes pour utiliser les interfaces en C++ :

  • Déclarez uniquement des fonctions virtuelles pures.
  • Attribué uniquement 0 aux fonctions virtuelles pures.
  • Ne créez pas l'interface des classes.
  • En utilisant une référence à une classe abstraite de base, nous pouvons créer un pointeur vers une instance de la classe dérivée.

Dans le code suivant, une interface linuxhint , comme une classe abstraite a été créée en utilisant une méthode virtuelle pure, ainsi que sa fonction est appliquée dans la classe enfant, et nous avons appelé le returnString() méthode dans la fonction main en suivant les règles d'interface.

#include
#include
#include
en utilisant espace de noms std ;

classe linuxhint
{
public :
virtuel chaîne de retourString ( ) = 0 ;
} ;
classe enfant : public linuxhint
{
public :
chaîne de retourString ( )
{
retour 'Bonjour Linuxhint' ;
}
} ;
entier principal ( )
{
enfant objet_enfant ;
linuxhint * pntr ;
pntr = & objet_enfant ;
écoute < chaîne de retour ( ) ;
retour 0 ;
}

Sortir

Conclusion

Les interfaces sont des classes abstraites qui décrivent le comportement de la classe devant implémenter la classe requise en C++. Les directives mentionnées ci-dessus sont cruciales pour qu'un débutant améliore ses compétences en programmation C++ en travaillant avec les interfaces. Vous trouverez également quelques exemples qui vous aideront à apprendre l'implémentation d'interfaces en C++.