Jak używać wskaźników funkcji w C++

Jak Uzywac Wskaznikow Funkcji W C



w C++, wskaźniki funkcji oferują potężne narzędzie do manipulowania funkcjami jako danymi. A wskaźnik funkcji jest zmienną przechowującą adres pamięci funkcji. Działa podobnie do standardowego wskaźnika, z tą różnicą, że zapisuje adres funkcji, a nie adres obiektu danych. Ważne jest, aby o tym pamiętać wskaźniki funkcji są po prostu innym rodzajem zmiennych w C++ i jako takie muszą być zadeklarowane i zainicjowane podobnie jak inne zmienne.

Definiowanie wskaźnika funkcji

Składnia deklaracji a wskaźnik funkcji następująco:







typ_zwrotu ( * nazwa_funkcji_ptr ) ( lista_parametrów ) ;



Tutaj, nazwa_funkcji_ptr jest nazwa wskaźnik funkcji , typ_zwrotu jest zwracanym typem funkcji i lista_parametrów to lista parametrów, które przyjmuje funkcja.



Oto przykład kodu do użycia wskaźnika funkcji w C++.





#include
#include
używając przestrzeni nazw std;

pusty sześcian ( int x )
{
cout << „Sześcian liczby to” << X * X * X << koniec;
}

int główny ( )
{
próżnia ( * zabawaPtr ) ( int ) ;
zabawaPtr = & sześcian;
zabawaPtr ( 5 ) ;
powrót 0 ;
}

W powyższym kodzie plik wskaźnik funkcji zostaje uznany za nieważny (*funPtr)(int) i jest inicjalizowany przez przechowywanie adresu funkcji cube() w zabawaPtr , czyli to zabawaPtr wskazuje na funkcję sześcian () . W ten sposób możemy wywołać funkcję kostki za pomocą funkcji funPtr ( wskaźnik funkcji ) jak w kodzie funPtr (5).



Wyjście

A wskaźnik funkcji , w przeciwieństwie do innych wskaźników, wskazuje raczej na kod niż na dane. A wskaźnik funkcji często przechowuje początek kodu wykonywalnego. W przeciwieństwie do standardowych wskaźników nie używamy wskaźniki funkcji przydzielić lub zwolnić pamięć. Jak widzieliśmy w powyższym programie, możliwe jest również wykorzystanie nazwy funkcji do określenia jej lokalizacji. Te same zasady, które dotyczą zwykłych wskaźników, dotyczą również tablicy wskaźniki funkcji . Zamiast przypadków przełączania można użyć wskaźników funkcji. A wskaźnik funkcji można podać jako argument i zwrócić z funkcji, tak jak może to zrobić wskaźnik danych.

Zalety wskaźników funkcji

Główne zalety wskaźniki funkcji są wymienione poniżej.

1: Wielokrotne użycie kodu

Jedna z kluczowych zalet stosowania wskaźniki funkcji jest to, że umożliwiają ponowne użycie w kodzie. Zamiast pisać unikalne funkcje dla każdych okoliczności, możesz zaprojektować funkcje, które są wystarczająco ogólne, aby poradzić sobie z różnymi rodzajami danych wejściowych, definiując wskaźnik funkcji wpisz i używaj go konsekwentnie w całym kodzie. Zamiast tego wszystko, co musisz zrobić, to zapewnić prawo wskaźnik funkcji w czasie wykonywania lub przez plik konfiguracyjny, a funkcja dostosuje się do wymagań bieżącego zadania. To nie tylko przyspiesza proces programowania, ale także poprawia modułowość kodu i długoterminową łatwość konserwacji.

2: Dynamiczne zachowanie w czasie wykonywania

Możliwość implementacji dynamicznego zachowania w czasie wykonywania to kolejna zaleta używania wskaźniki funkcji . Na przykład możesz mieć funkcję, która wykonuje określone obliczenia, ale dokładny algorytm użyty do wykonania tych obliczeń będzie zależał od danych wprowadzonych przez użytkownika lub warunków systemowych. Przechowując a wskaźnik funkcji który odpowiada każdemu możliwemu algorytmowi, możesz wybrać odpowiedni w czasie wykonywania, używając instrukcji if-else lub innej logiki warunkowej. W ten sposób można opracować bardzo elastyczny kod, który może reagować na zmieniające się warunki bez konieczności przebudowywania całego programu.

3: Elastyczność

w C++, wskaźniki funkcji oferują potężne narzędzie do tworzenia elastycznego, ogólnego kodu. Wskaźniki funkcji są zasadniczo zmiennymi przechowującymi adres lokalizacji pamięci funkcji. Umożliwiają one przechowywanie funkcji w strukturach danych, takich jak tablice lub listy, dostarczanie ich jako argumentów do innych funkcji, a nawet dynamiczne wybieranie właściwej funkcji do wykonania w oparciu o okoliczności środowiska uruchomieniowego lub dane wprowadzone przez użytkownika.

Wniosek

Wskaźniki funkcji w C++ są efektywne, obsługują dynamiczne zachowanie środowiska uruchomieniowego i ponowne użycie kodu. Możesz napisać niezwykle elastyczny i adaptacyjny kod, który może dostosowywać się do zmieniających się wymagań w czasie, przechowując adresy funkcji w zmiennych. Wskaźniki funkcji są niezbędne dla każdego profesjonalnego programisty C++, pomimo faktu, że ich nauka może wymagać trochę pracy.