W c++, wskaźniki funkcji Oferuj silne narzędzie do manipulowania funkcjami jako dane. A wskaźnik funkcji jest zmienną, która utrzymuje adres pamięci funkcji. Funkcjonuje podobnie do standardowego wskaźnika, z tym wyjątkiem, że zapisuje adres funkcji, a nie adres obiektu danych. Ważne jest, aby pamiętać o tym wskaźniki funkcji są po prostu inną zmienną w C ++ i jako takie należy je zadeklarować i zainicjować podobnie do innych zmiennych.
Definiowanie wskaźnika funkcji
Składnia do deklarowania a wskaźnik funkcji następująco:
return_type (*func_ptr_name) (parametr_list);
Tutaj, FUNC_PTR_NAME to nazwa wskaźnik funkcji, return_type to rodzaj powrotu funkcji i parametr_list to lista parametrów, które funkcja przyjmuje.
Oto przykład kodu do użycia wskaźnika funkcji w C++.
#włączać
#włączać
za pomocą przestrzeni nazw Std;
Void Cube (int x)
Cout<<"The cube of a number is "<
int main ()
void (*funptr) (int);
FUNPTR = &cube;
FUNPTR (5);
powrót 0;
W powyższym kodzie, wskaźnik funkcji jest zadeklarowane jako pustka (*funptr) (int), i jest inicjowany przez przechowywanie adresu funkcji cube () w FUNPTR, to znaczy FUNPTR wskazuje na funkcję kostka (). W ten sposób możemy wywołać funkcję kostki za pomocą FUNPTR (wskaźnik funkcji) Jak w kodzie FunPtr (5).
Wyjście
A wskaźnik funkcji, W przeciwieństwie do innych wskazówek wskazuje raczej na kod niż 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żna również wykorzystać nazwę funkcji, aby określić jej lokalizację. Te same zasady dotyczące normalnych wskazówek dotyczą również szeregu wskaźniki funkcji. Zastosowanie wskaźników funkcji można użyć zamiast przypadków przełącznika. A wskaźnik funkcji może być dostarczany jako argument i zwrócić z funkcji, tak jak wskaźnik danych.
Zalety wskaźników funkcji
Główne korzyści z wskaźniki funkcji są wymienione poniżej.
1: Ponowne użycie kodu
Jedna z kluczowych zalet korzystania z wskaźniki funkcji jest to, że pozwalają na ponowne użycie w kodzie. Zamiast pisać unikalne funkcje dla każdej okoliczności, możesz projektować funkcje, które są wystarczająco ogólne, aby poradzić sobie z różnymi różnymi rodzajami danych wejściowych, definiując wskaźnik funkcji Wpisz i używając go konsekwentnie w całym kodzie. Zamiast tego wszystko, co musisz zrobić, to zapewnić prawo wskaźnik funkcji w czasie wykonywania lub za pośrednictwem pliku konfiguracyjnego, a funkcja dostosuje się do wymagań bieżącego zadania. To nie tylko przyspiesza proces rozwoju, ale także poprawia modułowość kodu i długoterminową możliwość utrzymania.
2: Dynamiczne zachowanie środowiska wykonawczego
Możliwość wdrożenia dynamicznego zachowania środowiska wykonawczego to kolejna korzyść z korzystania z wskaźniki funkcji. Na przykład możesz mieć funkcję, która wykonuje określone obliczenia, ale dokładny algorytm używany do wykonania tego obliczenia będzie zależeć od wejścia użytkownika lub warunków systemowych. Przechowując wskaźnik funkcji To odpowiada każdemu możliwemu algorytmowi, możesz wybrać odpowiedni w czasie wykonywania za pomocą instrukcji IF-ELSE lub innej logiki warunkowej. W ten sposób możesz opracować wysoce elastyczny kod, który może reagować na zmieniające się warunki bez konieczności odbudowy całego programu.
3: Elastyczność
W c++, wskaźniki funkcji Zaoferuj silne narzędzie do tworzenia elastycznego, ogólnego kodu. Wskaźniki funkcji są zasadniczo zmiennymi, które utrzymują adres lokalizacji pamięci funkcji. Umożliwiają przechowywanie funkcji w strukturach danych, takich jak tablice lub listy, dostarczane jako argumenty innych funkcji, a nawet używane do dynamicznego wyboru właściwej funkcji do wykonania w oparciu o okoliczności wykonawcze lub wprowadzanie użytkownika.
Wniosek
Wskaźniki funkcji W C ++ są skuteczne, które obsługują dynamiczne zachowanie środowiska wykonawczego i ponowne wykorzystanie kodu. Możesz napisać niezwykle elastyczny i adaptacyjny kod, który może dostosować się do zmieniających się wymagań, przechowując adresy funkcji w zmiennych. Wskaźniki funkcji są niezbędne dla każdego profesjonalnego kodera C ++, pomimo faktu, że mogą wymagać pracy do nauki.