Functieaanwijzers gebruiken in C ++

Functieaanwijzers Gebruiken In C



In C++, functie wijzers bieden een krachtig hulpmiddel voor het manipuleren van functies als gegevens. A functie aanwijzer is een variabele die het geheugenadres van een functie bevat. Het werkt op dezelfde manier als een standaardaanwijzer, behalve dat het het adres van een functie opslaat in plaats van het adres van een gegevensobject. Het is cruciaal om dat in gedachten te houden functie wijzers zijn gewoon een ander soort variabele in C ++, en als zodanig moeten ze op dezelfde manier worden gedeclareerd en geïnitialiseerd als andere variabelen.

Een functieaanwijzer definiëren

De syntaxis om a te declareren functie aanwijzer is als volgt:







retourtype ( * func_ptr_naam ) ( parameterlijst ) ;



Hier, func_ptr_naam is de naam van de functie aanwijzer , retourtype is het retourtype van de functie, en parameterlijst is de lijst met parameters die de functie aanneemt.



Hier is een codevoorbeeld om een ​​functieaanwijzer in C++ te gebruiken.





#include
#include
namespace std; gebruiken;

lege kubus ( int x )
{
cout << 'De derde macht van een getal is ' << X * X * X << einde;
}

int hoofd ( )
{
leegte ( * plezierPtr ) ( int ) ;
leukPtr = & kubus;
plezierPtr ( 5 ) ;
opbrengst 0 ;
}

In de bovenstaande code is de functie aanwijzer wordt ongeldig verklaard (*funPtr)(int) , en het wordt geïnitialiseerd door het adres van de functie cube() op te slaan in plezierPtr , inhoudende dat plezierPtr verwijst naar de functie kubus () . We kunnen dus de kubusfunctie aanroepen met behulp van de functie funPtr ( functie aanwijzer ) zoals in de code funPtr (5).



Uitgang

A functie aanwijzer , in tegenstelling tot andere pointers, verwijst naar code in plaats van data. A functie aanwijzer slaat vaak het begin van uitvoerbare code op. In tegenstelling tot standaard pointers, gebruiken we niet functie wijzers om geheugen toe te wijzen of vrij te maken. Zoals we in het bovenstaande programma hebben gezien, is het ook mogelijk om de naam van een functie te gebruiken om de locatie te bepalen. Dezelfde regels die van toepassing zijn op normale pointers, zijn ook van toepassing op een array van functie wijzers . Het gebruik van functieaanwijzers kan worden gebruikt in plaats van schakelkasten. A functie aanwijzer kan worden geleverd als een argument en worden geretourneerd door een functie, net zoals een gegevensaanwijzer dat kan.

Voordelen van functiewijzers

De belangrijkste voordelen van functie wijzers staan ​​hieronder vermeld.

1: Herbruikbaarheid van code

Een van de belangrijkste voordelen van het gebruik functie wijzers is dat ze herbruikbaarheid in de code mogelijk maken. In plaats van voor elke omstandigheid unieke functies te moeten schrijven, kunt u functies ontwerpen die algemeen genoeg zijn om met een verscheidenheid aan verschillende soorten invoergegevens om te gaan door een functie aanwijzer typ en gebruik het consequent in uw code. In plaats daarvan hoeft u alleen het recht te verstrekken functie aanwijzer tijdens runtime of via een configuratiebestand, en de functie zal zich aanpassen aan de eisen van de huidige taak. Dit versnelt niet alleen het ontwikkelingsproces, maar verbetert ook de modulariteit en onderhoudbaarheid op lange termijn van uw code.

2: Dynamisch looptijdgedrag

De mogelijkheid om dynamisch runtime-gedrag te implementeren is een ander voordeel van het gebruik functie wijzers . U kunt bijvoorbeeld een functie hebben die een specifieke berekening uitvoert, maar het exacte algoritme dat wordt gebruikt om die berekening uit te voeren, is afhankelijk van gebruikersinvoer of systeemomstandigheden. Door het opslaan van een functie aanwijzer dat overeenkomt met elk mogelijk algoritme, kunt u tijdens runtime het juiste selecteren met behulp van if-else-instructies of andere voorwaardelijke logica. Door dit te doen, kunt u zeer flexibele code ontwikkelen die kan reageren op veranderende omstandigheden zonder dat het hele programma opnieuw hoeft te worden opgebouwd.

3: Flexibiliteit

In C++, functie wijzers bieden een krachtige tool voor het maken van flexibele, generieke code. Functie-aanwijzers zijn in wezen variabelen die het adres bevatten van de geheugenlocatie van een functie. Ze maken het mogelijk dat functies worden opgeslagen in datastructuren zoals arrays of lijsten, worden geleverd als argumenten voor andere functies en worden zelfs gebruikt om dynamisch de juiste functie te kiezen om uit te voeren op basis van runtime-omstandigheden of gebruikersinvoer.

Conclusie

Functie-aanwijzers in C ++ zijn effectief die dynamisch runtime-gedrag en hergebruik van code ondersteunen. U kunt uiterst flexibele en adaptieve code schrijven die zich in de loop van de tijd kan aanpassen aan veranderende vereisten door de adressen van functies in variabelen op te slaan. Functie-aanwijzers zijn noodzakelijk voor elke professionele C ++ -coder, ondanks het feit dat ze misschien wat werk vergen om te leren.