Моя проблема в том, что я пытаюсь понять обратный вызов или функцию указатели в C++. Я думаю, что следующий пример показывает, как мне нужно использовать указатель функции в методе MyClass:MyMethod:
Код: Выделить всё
// callback function
int foo(char x) { [...] }
void MyAnotherClass::AnotherMethod(int a, int b, int(*func_ptr)(char))
{
// Compute x using parameters a and b.
char x = [ ... ];
int e = func_ptr(x);
}
void MyClass:MyMethod(int a, int b, int c, int d)
{
MyAnotherClass::AnotherMethod(a, b, &foo);
}
Код: Выделить всё
int foo2(char x, int c, int d) { [...] }
Один из вариантов — передать эти параметры в метод MyAnotherClass::AnotherMethod, а внутри этого метода передать их сюда int e = func_ptr(x, c, d) ;. Примерно так:
Код: Выделить всё
void MyAnotherClass::AnotherMethod(int a, int b, int c, int d, int(*func_ptr)(char, int, int))
{
// Compute x using parameters a and b.
char x = [ ... ];
int e = func_ptr(x, c, d);
}
Возможно ли это?
Я понятия не имею, являются ли лямбда-функции решением.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -functions
Мобильная версия