Wat zijn interfaces in C++

Wat Zijn Interfaces In C



Interfaces, algemeen bekend als abstracte klassen, zijn slechts een bron om het gedrag van de klasse te beschrijven zonder zich te hebben gecommitteerd aan de implementatie van de klasse. Er is geen ingebouwd concept van interfaces in C++-programmering. Om te beginnen met het maken van een interface, moeten we eerst een abstracte klasse opzetten met alleen pure virtuele functies.

Interfaces in C++ worden toegepast met behulp van abstracte klassen. Aan de andere kant wordt een klasse een abstracte klasse genoemd als ten minste één functie binnen een klasse wordt gedeclareerd als een pure virtuele functie.

Wat is de pure virtuele functie

De Pure virtuele functie betekent dat gebruikers alleen de functie declareren en niet de definitie ervan. Overschrijven van methode/functie wordt gebruikt om pure virtuele methoden te implementeren in de afgeleide klasse. Een functie wordt als puur virtueel beschouwd als deze binnen de klasse wordt beschreven, zoals hieronder weergegeven:







Hier is de syntaxis van a Pure virtuele functie van Klaslokaal.



klas Kamer {
openbaar :
// pure virtuele functie
virtueel dubbele Getaria ( ) = 0 ;

privaat :
dubbele lengte ; // Lengte van een kamer
dubbele Breedte ; // Breedte van een kamer
} ;

Wat is abstracte klasse

Een klasse die speciaal is gemaakt om als basisklasse te dienen, wordt een genoemd abstracte klasse . Er moet ten minste één pure virtuele functie aanwezig zijn in de abstracte klasse. Het kan variabelen en standaardfuncties bevatten. De afgeleide klassen die de abstracte klasse heeft, moeten een pure virtuele functie van de basisklasse implementeren, anders worden ze abstract.



Beschouw het volgende voorbeeld, waarin de bovenliggende klasse een interface geeft aan een basisklasse zodat de basisklasse een pure virtuele functie kan toepassen, genaamd getGebied() . Twee verschillende klassen gebruiken hetzelfde getGebied() functie, maar de uitvoer voor beide gevallen zal verschillend zijn.





#include
gebruik makend van naamruimte soa ;
klas Vorm
{
openbaar :
virtueel int Getaria ( ) = 0 ;
leegte setBreedte ( int met )
{
breedte = met ;
}

leegte setLengte ( int lth )
{
lengte = lth ;
}

beschermd :
int breedte ;
int lengte ;
} ;

klas Rechthoek : openbaar Vorm
{
openbaar : int Getaria ( )
{
opbrengst ( breedte * lengte ) ;
}
} ;

klas Driehoek : openbaar Vorm
{
openbaar : int Getaria ( )
{
opbrengst ( breedte * lengte ) / 2 ;
}
} ;

int voornaamst ( leegte )
{
Rechthoek R ;
Driehoek T ;
R. setBreedte ( 9 ) ;
R. setLengte ( 5 ) ;
cout << 'Gebied van rechthoek: ' << R. Getaria ( ) << eindel ;
T. setBreedte ( 9 ) ;
T. setLengte ( 5 ) ;
cout << 'Gebied van Driehoek: ' << T. Getaria ( ) << eindel ;
opbrengst 0 ;
}

Uitgang



Belang van interfaces

Elke klasse die is afgeleid van een pure abstracte klasse (Interface) moet altijd elk van de methoden van de basisklasse implementeren, d.w.z. Interface. Interface-pointers kunnen zowel aan de functies als aan de klassen worden doorgegeven, waardoor we de functies van de afgeleide klasse van daaruit zelf kunnen aanroepen.

Wat zijn de regels voor het gebruik van interfaces

Er zijn de volgende regels die gebruikers moeten volgen voor het gebruik van interfaces in C++:

  • Declareer alleen pure virtuele functies.
  • Alleen 0 toegewezen aan pure virtuele functies.
  • Maak niet de interface van klassen.
  • Door een verwijzing naar een abstracte basisklasse te gebruiken, kunnen we een verwijzing naar een instantie van de afgeleide klasse maken.

In de volgende code wordt een interface linuxhint , alsof een abstracte klasse is gemaakt met behulp van een pure virtuele methode, en de functie ervan wordt toegepast in de onderliggende klasse, en we noemden de returnString() methode in de hoofdfunctie door de interfaceregels te volgen.

#include
#include
#include
gebruik makend van naamruimte soa ;

klas linuxhint
{
openbaar :
virtueel tekenreeks returnString ( ) = 0 ;
} ;
klas kind : openbaar linuxhint
{
openbaar :
tekenreeks returnString ( )
{
opbrengst 'Hallo Linuxhint' ;
}
} ;
int voornaamst ( )
{
kind kind_object ;
linuxhint * pntr ;
pntr = & kind_object ;
cout < returnString ( ) ;
opbrengst 0 ;
}

Uitgang

Conclusie

Interfaces zijn abstracte klassen die het klassengedrag beschrijven dat nodig is om de vereiste klasse in C++ te implementeren. De bovengenoemde richtlijnen zijn cruciaal voor een beginner om zijn programmeervaardigheden in C++ te verbeteren door met de interfaces te werken. U zult ook enkele voorbeelden vinden die u zullen helpen de implementatie van interfaces in C++ te leren.