Запитання з тегом «function-pointers»

Покажчик функції - це вказівник на функцію, який може зберігатися у змінній. Це дозволяє вибрати час запуску, яку функцію виконувати.

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

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

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

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

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); Я розглянув це запитання і ознайомився з деякими стандартами …

12
Як я можу передати функцію члена класу як зворотний дзвінок?
Я використовую API, який вимагає від мене передачі покажчика функції як зворотного виклику. Я намагаюся використовувати цей API зі свого класу, але отримую помилки компіляції. Ось що я зробив від свого конструктора: m_cRedundencyManager->Init(this->RedundencyManagerCallBack); Це не компілюється - я отримую таку помилку: Помилка 8, помилка C3867: 'CLoggersInfra :: RedundencyManagerCallBack': у списку …

8
Покажчик функції Python
У мене є ім'я функції, яке зберігається у такій змінній: myvar = 'mypackage.mymodule.myfunction' і я зараз хочу зателефонувати до своєї функції таким чином myvar(parameter1, parameter2) Який найпростіший спосіб цього досягти?

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

4
Чи є void * function () вказівник на функцію або функція, що повертає порожнечу *?
Мене плутає сенс void *function(). Це вказівник на функцію чи функція, що повертається void*? Я завжди використовував це в структурах даних як рекурсивну функцію, що повертає вказівник, але коли я побачив код у багатопотоковому читанні ( pthread), є однакове оголошення функції. Тепер я розгублений, в чому різниця між ними.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.