Wskaźnik na funkcję

Wskaźnik na funkcję
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Chciałbym zrozumieć ideę, powód dlaczego i w jaki sposób to się odbywa: wskaźnik na funkcję.

Jaka jest skladnia, dlaczego wykonujemy wskaźnik na funkcję. Co zyskujemy dzięki temu. Kiedy stosujemy to.

PS. Czytałem w innych miejscach ale jakoś nie potrafiło to do mnie trafić.

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
2

http://www.cplusplus.com/reference/cstdlib/qsort/
czyli masz funkcję sortująca, a za pomocą wskaźnika możesz zdefiniować relację między sortowanymi elementami.
Sam algorytm sortowania wygląda tak samo, ale relacje między elementami można dostosować do potrzeb.

Algorytmy z STL zamiast wskaźników na funkcje ma "funkcjonały" "funktory", czyli obiekty które zachowują się jak funkcje.

Wskaźniki na funkcję są przydatne w C.
We współczesnym C++ unika się ich jak ognia, bo są inne bardziej uniwersalne i wygodne rozwiązania:

  • interfejsy - klasy abstrakcyjne i wskaźniki na nie
  • obiekty funkcyjne i ich udogodniona forma:
    *- lambdy
    *- std::function
  • szablony

Każdy język programowania ma coś analogicznego.
W Java są interfejsy i lambdy
W C# to samo co w Java plus delegaty
W Python JavaScript itp też jest taki mechanizm ale jest ukryty pod pojęciem "Duck typing" (kacze typowanie - jeśli coś wygląda jak kaczka, kwacze jak kaczka, to musi być kaczka).

Tu jest omówione, po co to jest, na bardzo wysokim poziomie abstrakcji, więc pewnie nie zrozumiesz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.