ďťż

Ładny brzuch

Jak przekazać funkcję do funkcji ? Powiedzmy że mam funkcję:
int dodaj(int a, int B) { return a + b;}
Wskaźnik na taką funkcję wygląda tak:
int (*wks)(int a, int B);
Ale jeżeli chcę zadeklarować funkcję która będzie pobierać wskaźnik do takiej funkcji to takie coś:
void wywolajFunkcje(int (*wks)(int a, int B), int dodatkowyParametr) { wsk(0, 0); // Inne instrukcje ... }
niestety nie działa :/




Jak przekazać funkcję do funkcji ? Powiedzmy że mam funkcję:
int dodaj(int a, int B) { return a + b;}
Wskaźnik na taką funkcję wygląda tak:
int (*wks)(int a, int B);
Ale jeżeli chcę zadeklarować funkcję która będzie pobierać wskaźnik do takiej funkcji to takie coś:
void wywolajFunkcje(int (*wks)(int a, int B), int dodatkowyParametr) { wsk(0, 0); // Inne instrukcje ... }
niestety nie działa :/


Mi to skompilowało się pod Visual Studio:
#include <iostream> using namespace std; int dodaj(int aa, int bb) { return aa + bb;} void wywolajFunkcje(int (*wsk)(int, int), int aa, int bb) { cout << wsk(aa, bb); } int main(int argc, char *argv[]) { int (*wsk)(int aa, int bb) = dodaj; wywolajFunkcje(wsk, 1, 2); cin.get(); return 0; }

Ale proponuję ci poczytać o funktorach (czy obiektach funkcyjnych, różnie to zwą). Są wygodniejsze, mają większe możliwości, są zgodne z duchem C++ i są wspierane przez STL :)
Użytkownik eugeniusz edytował ten post 20 marzec 2010, 19:33
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •