Wskaźnik na funkcję

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ć.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1