A függvénymutatók használata C++ nyelven

A Fuggvenymutatok Hasznalata C Nyelven



C++ nyelven, függvénymutatók hatékony eszközt kínálnak a funkciók adatként történő kezeléséhez. A funkciómutató egy változó, amely egy függvény memóriacímét tartalmazza. A szabványos mutatóhoz hasonlóan működik, azzal a különbséggel, hogy egy függvény címét menti el, nem pedig egy adatobjektum címét. Ezt nagyon fontos szem előtt tartani függvénymutatók egyszerűen egy másik változó a C++-ban, és mint ilyenek, más változókhoz hasonlóan kell deklarálni és inicializálni őket.

Függvénymutató meghatározása

A deklarálás szintaxisa a funkciómutató az alábbiak:







return_type ( * func_ptr_name ) ( paraméter_lista ) ;



Itt, func_ptr_name a neve a funkciómutató , return_type a függvény visszatérési típusa, és paraméter_lista a függvény által felvett paraméterek listája.



Íme egy kódpélda a függvénymutató használatára C++ nyelven.





#include
#include
névtér használata std;

üres kocka ( int x )
{
cout << 'A szám kocka az' << x * x * x << endl;
}

int fő ( )
{
üres ( * funPtr ) ( int ) ;
funPtr = & kocka;
funPtr ( 5 ) ;
Visszatérés 0 ;
}

A fenti kódban a funkciómutató érvénytelennek nyilvánítják (*funPtr)(int) , és a cube() függvény címének tárolásával inicializálódik funPtr , ami azt jelenti funPtr funkcióra mutat kocka () . Így a kocka függvényt a funPtr ( funkciómutató ), mint a funPtr (5) kódban.



Kimenet

A funkciómutató , ellentétben a többi mutatóval, inkább a kódra mutat, mint az adatokra. A funkciómutató gyakran tárolja a végrehajtható kód elejét. A szokásos mutatóktól eltérően nem használjuk függvénymutatók memória lefoglalásához vagy felszabadításához. Ahogy a fenti programban láttuk, lehetőség van egy függvény nevének felhasználására is a helyének meghatározására. Ugyanazok a szabályok, amelyek a normál mutatókra vonatkoznak, a tömbökre is érvényesek függvénymutatók . A funkciómutatók használhatók a kapcsolótokok helyett. A funkciómutató argumentumként megadható, és függvényből visszaadható, akárcsak egy adatmutató.

A funkciómutatók előnyei

A fő előnyei függvénymutatók alább soroljuk fel.

1: A kód újrafelhasználhatósága

A használat egyik legfontosabb előnye függvénymutatók az, hogy lehetővé teszik az újrafelhasználást a kódban. Ahelyett, hogy minden körülményhez egyedi függvényeket kellene írnia, olyan függvényeket tervezhet, amelyek elég általánosak ahhoz, hogy különféle típusú bemeneti adatokat kezeljenek egy funkciómutató írja be, és következetesen használja a kódban. Ehelyett csak a megfelelőt kell biztosítania funkciómutató futás közben vagy egy konfigurációs fájlon keresztül, és a funkció az aktuális feladat igényeihez igazodik. Ez nemcsak felgyorsítja a fejlesztési folyamatot, hanem javítja a kód modularitását és hosszú távú karbantarthatóságát is.

2: Dinamikus futásidejű viselkedés

A használat másik előnye a dinamikus futásidejű viselkedés megvalósításának képessége függvénymutatók . Például előfordulhat, hogy van egy függvénye, amely egy adott számítást hajt végre, de a számítás végrehajtásához használt pontos algoritmus a felhasználói beviteltől vagy a rendszer feltételeitől függ. Tárolásával a funkciómutató amely megfelel az egyes lehetséges algoritmusoknak, futás közben kiválaszthatja a megfelelőt if-else utasítások vagy más feltételes logika segítségével. Ezzel rendkívül rugalmas kódot fejleszthet ki, amely képes reagálni a változó feltételekre anélkül, hogy a teljes program újraépítésére lenne szükség.

3: Rugalmasság

C++ nyelven, függvénymutatók hatékony eszközt kínálnak rugalmas, általános kód létrehozásához. Funkciómutatók lényegében olyan változók, amelyek egy függvény memóriahelyének címét tartalmazzák. Lehetővé teszik a függvények adatstruktúrákban, például tömbökben vagy listákban való tárolását, argumentumként más függvények számára történő megadását, sőt a futási körülmények vagy a felhasználói bemenet alapján a megfelelő függvény dinamikus kiválasztását is lehetővé teszik.

Következtetés

Funkciómutatók A C++ nyelvben hatékonyak, amelyek támogatják a dinamikus futásidejű viselkedést és a kód újrafelhasználását. Rendkívül rugalmas és adaptív kódot írhat, amely képes alkalmazkodni az idő múlásával változó követelményekhez, ha a függvények címeit változókban tárolja. Funkciómutatók minden professzionális C++ kódoló számára szükségesek, annak ellenére, hogy elsajátításuk némi munkát igényelhet.