Kurs C++
Wskaźnik na funkcję
[lekcja] Rozdział opisuje jak stworzyć wskaźnik na funkcję oraz jak z niego korzystać.Pisząc swoje programy czasami mamy potrzebę określenia zachowania algorytmu na podstawie wyniku działania jakiejś funkcji. Praktycznym zastosowaniem wskaźników na funkcje jest funkcja sortująca
qsort. W niniejszym rozdziale dowiesz się w jaki sposób pisać własne funkcje, które mogą przyjmować jako argument wskaźnik na funkcję.
Jak utworzyć definicję wskaźnika na funkcję?
Jak zapisać adres funkcji do wskaźnika?
nazwaTypuT pWskaznikNaFunkcje = mojaFunkcja;
Jak wywołać funkcję zapisaną we wskaźniku?
int iWynik = pWskaznikNaFunkcje( 123.4f, 567, "Koniec" );
Przykład
#include <cstdio>
int dodawanie( int a, int b );
int mnozenie( int a, int b );
typedef int( * dzialanieT )( int, int );
int oblicz( int a, int b, dzialanieT pDzialanie );
int obliczBezDefinicji( int a, int b, int( * pDzialanie )( int, int ) );
int main()
{
printf( "Wynik mnozenia = %d\n", oblicz( 3, 4, mnozenie ) );
printf( "Wynik dodawania = %d\n", oblicz( 3, 4, dodawanie ) );
printf( "Wynik mnozenia = %d\n", obliczBezDefinicji( 3, 4, mnozenie ) );
printf( "Wynik dodawania = %d\n", obliczBezDefinicji( 3, 4, dodawanie ) );
return 0;
}
int dodawanie( int a, int b )
{
return a + b;
}
int mnozenie( int a, int b )
{
return a * b;
}
int oblicz( int a, int b, dzialanieT pDzialanie )
{
return pDzialanie( a, b );
}
int obliczBezDefinicji( int a, int b, int( * pDzialanie )( int, int ) )
{
return pDzialanie( a, b );
}
Standardowe wyjście programu:
Wynik mnozenia = 12
Wynik dodawania = 7
Wynik mnozenia = 12
Wynik dodawania = 7
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.