CC++Qt « как передать функцию как параметр в другую функцию в C++

Есть одна функция и я хочу передавать другую параметром, как можно такое сделать?

1 ответов


http://www.boost.org/doc/libs/1_43_0/doc/html/function.html


Например,


     typedef int (*funct)(int); // указатель на ф-ю c 1 параметром типа int и
  возвращающую int
    void foo (funct)
    {
       if (funct) вызываем ф-ю, переданную через указатель
       {
           int a = funct(3);
       }
    }
   int bar (int val)
   {
       return val +1;
   }
   int main(int nArg, char* pszArgs[])
   {
      foo(bar); // или foo (&bar);
       return 0;
   }
 
Если надо передать указатель на метод какого класса, то он объявляется

    typedef void (MyClass::*method)(int); // указатель на void метод класса MyClass принимающий int параметр
 

да, возможно... используйте делегаты...