Вопросы с тегом «function-pointers»

Указатель функции - это указатель на функцию, которая может храниться в переменной. Это позволяет во время выполнения выбирать, какую функцию запускать.

10
Вызов методов класса C ++ через указатель на функцию
Как получить указатель на функцию для функции-члена класса, а затем вызвать эту функцию-член с конкретным объектом? Я хочу написать: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … Также, если возможно, я хотел бы …

8
Лямбда C ++ с захватами в качестве указателя на функцию
Я играл с лямбдами C ++ и их неявным преобразованием в указатели на функции. В моем начальном примере они использовались в качестве обратного вызова для функции ftw. Это работает, как ожидалось. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat …

7
Приведение указателя функции к другому типу
Скажем, у меня есть функция, которая принимает void (*)(void*)указатель на функцию для использования в качестве обратного вызова: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Теперь, если у меня есть такая функция: void my_callback_function(struct my_struct* arg); Могу ли я сделать это безопасно? do_stuff((void (*)(void*)) &my_callback_function, NULL); Я рассмотрел этот вопрос, и я просмотрел …

7
Указатель функции на функцию-член
Я хотел бы настроить указатель на функцию как член класса, который является указателем на другую функцию в том же классе. Причины, по которым я это делаю, сложны. В этом примере я хотел бы, чтобы результат был «1» class A { public: int f(); int (*x)(); } int A::f() { return …

4
Значение int (*) (int *) = 5 (или любое целочисленное значение)
Я не могу понять этого: int main() { int (*) (int *) = 5; return 0; } Приведенное выше назначение компилируется с g ++ c ++ 11. Я знаю, что int (*) (int *)это указатель на функцию, которая принимает (int *)аргумент as и возвращает int, но я не понимаю, как …

4
Что делает ((void (*) ()) buf) (); жадный?
Я решаю проблему бинарной эксплуатации на picoCTF и наткнулся на этот фрагмент кода: ((void (*)())buf)(); где bufмассив символов. Я решил проблему, но не могу понять, что именно он делает. Я посмотрел на эту ветку, но не смог разобрать. Что ((void (*)())buf)();значит?

4
Является ли void * function () указателем на функцию или функцию, возвращающую void *?
Я запутался в значении void *function(). Это указатель на функцию или возвращаемую функцию void*? Я всегда использовал его в структурах данных как рекурсивную функцию, возвращающую указатель, но когда я увидел код в многопоточности ( pthread), было одно и то же объявление функции. Теперь я запутался в чем разница между ними.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.