CC++Qt « как передать функцию как параметр в другую функцию в C++
Есть одна функция и я хочу передавать другую параметром, как можно такое сделать?
1 ответов
Например,
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 параметр