Ako používať funkčné ukazovatele v C++

Ako Pouzivat Funkcne Ukazovatele V C



V C++, ukazovatele funkcií ponúkajú účinný nástroj na manipuláciu s funkciami ako sú dáta. A ukazovateľ funkcie je premenná, ktorá obsahuje adresu pamäte funkcie. Funguje podobne ako štandardný ukazovateľ okrem toho, že ukladá adresu funkcie a nie adresu dátového objektu. Je dôležité mať to na pamäti ukazovatele funkcií sú jednoducho iným druhom premenných v C++ a ako také musia byť deklarované a inicializované podobne ako iné premenné.

Definovanie ukazovateľa funkcie

Syntax na vyhlásenie a ukazovateľ funkcie je nasledujúca:







return_type ( * func_ptr_name ) ( zoznam_parametrov ) ;



Tu, func_ptr_name je názov ukazovateľ funkcie , return_type je návratový typ funkcie a zoznam_parametrov je zoznam parametrov, ktoré funkcia preberá.



Tu je príklad kódu na použitie ukazovateľa funkcie v C++.





#include
#include
pomocou menného priestoru std;

prázdna kocka ( int x )
{
cout << 'Kocka čísla je' << X * X * X << endl;
}

int main ( )
{
neplatné ( * funPtr ) ( int ) ;
funPtr = & kocka;
funPtr ( 5 ) ;
vrátiť 0 ;
}

Vo vyššie uvedenom kóde je ukazovateľ funkcie sa vyhlasuje za neplatné (*funPtr)(int) a inicializuje sa uložením adresy funkcie cube() do funPtr , znamená to že funPtr poukazuje na funkciu kocka () . Môžeme teda volať funkciu kocky pomocou funPtr ( ukazovateľ funkcie ) ako v kóde funPtr (5).



Výkon

A ukazovateľ funkcie , na rozdiel od iných ukazovateľov, ukazuje skôr na kód než na údaje. A ukazovateľ funkcie často ukladá začiatok spustiteľného kódu. Na rozdiel od štandardných ukazovateľov nepoužívame ukazovatele funkcií na pridelenie alebo uvoľnenie pamäte. Ako sme videli v programe vyššie, je tiež možné použiť názov funkcie na určenie jej polohy. Rovnaké pravidlá, ktoré platia pre normálne ukazovatele, platia aj pre pole ukazovatele funkcií . Namiesto puzdier spínačov možno použiť ukazovatele funkcií. A ukazovateľ funkcie môže byť dodaný ako argument a vrátený z funkcie, rovnako ako dátový ukazovateľ.

Výhody funkčných ukazovateľov

Hlavné výhody ukazovatele funkcií sú uvedené nižšie.

1: Opätovná použiteľnosť kódu

Jedna z kľúčových výhod používania ukazovatele funkcií je, že umožňujú opätovné použitie v kóde. Namiesto toho, aby ste museli písať jedinečné funkcie pre každú okolnosť, môžete navrhnúť funkcie, ktoré sú dostatočne všeobecné na to, aby si poradili s rôznymi druhmi vstupných údajov definovaním ukazovateľ funkcie zadajte a používajte ho konzistentne v celom kóde. Namiesto toho všetko, čo musíte urobiť, je poskytnúť právo ukazovateľ funkcie za behu alebo cez konfiguračný súbor a funkcia sa prispôsobí požiadavkám aktuálnej úlohy. To nielen urýchli proces vývoja, ale tiež zlepší modularitu vášho kódu a dlhodobú udržiavateľnosť.

2: Dynamické správanie pri behu

Schopnosť implementovať dynamické behové správanie je ďalšou výhodou používania ukazovatele funkcií . Môžete mať napríklad funkciu, ktorá vykoná konkrétny výpočet, ale presný algoritmus použitý na vykonanie tohto výpočtu bude závisieť od vstupu používateľa alebo systémových podmienok. Uložením a ukazovateľ funkcie ktorý zodpovedá každému možnému algoritmu, môžete vybrať ten správny za behu pomocou príkazov if-else alebo inej podmienenej logiky. Týmto spôsobom môžete vyvinúť vysoko flexibilný kód, ktorý dokáže reagovať na meniace sa podmienky bez potreby prestavby celého programu.

3: Flexibilita

V C++, ukazovatele funkcií ponúkajú účinný nástroj na vytváranie flexibilného, ​​generického kódu. Ukazovatele funkcií sú v podstate premenné, ktoré obsahujú adresu miesta v pamäti funkcie. Umožňujú uloženie funkcií v dátových štruktúrach, ako sú polia alebo zoznamy, dodávanie ako argumenty iným funkciám a dokonca ich použitie na dynamickú voľbu správnej funkcie na vykonanie na základe okolností behu alebo vstupu používateľa.

Záver

Ukazovatele funkcií v C++ sú efektívne, ktoré podporujú dynamické behové správanie a opätovné použitie kódu. Môžete napísať extrémne flexibilný a adaptívny kód, ktorý sa dokáže časom prispôsobiť meniacim sa požiadavkám ukladaním adries funkcií do premenných. Ukazovatele funkcií sú potrebné pre každého profesionálneho programátora C++, napriek tomu, že môžu vyžadovať určité úsilie, aby sa naučili.