Un puntatore a funzione è un puntatore a una funzione, che può essere memorizzato in una variabile. Consente una scelta in fase di esecuzione di quale funzione eseguire.
Come ottengo un puntatore a funzione per una funzione membro di classe e in seguito chiamo quella funzione membro con un oggetto specifico? Vorrei scrivere: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); …
Stavo giocando con i lambda C ++ e la loro conversione implicita in puntatori a funzione. Il mio esempio iniziale li stava usando come callback per la funzione ftw. Funziona come previsto. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct …
Vorrei impostare un puntatore a funzione come membro di una classe che è un puntatore a un'altra funzione nella stessa classe. I motivi per cui lo sto facendo sono complicati. In questo esempio, vorrei che l'output fosse "1" class A { public: int f(); int (*x)(); } int A::f() { …
Diciamo che ho una funzione che accetta un void (*)(void*)puntatore a funzione da utilizzare come callback: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Ora, se ho una funzione come questa: void my_callback_function(struct my_struct* arg); Posso farlo in sicurezza? do_stuff((void (*)(void*)) &my_callback_function, NULL); Ho esaminato questa domanda e alcuni standard C che dicono …
Non riesco a capirlo: int main() { int (*) (int *) = 5; return 0; } L'assegnazione sopra viene compilata con g ++ c ++ 11. So che int (*) (int *)è un puntatore a una funzione che accetta un (int *)argomento come e restituisce un int, ma non capisco …
Sto risolvendo una sfida di sfruttamento binario su picoCTF e mi sono imbattuto in questo pezzo di codice: ((void (*)())buf)(); dove bufè un array di caratteri. Ho risolto la sfida ma non riesco a capire esattamente cosa stia facendo. Ho guardato questo thread ma non sono riuscito a capirlo. Cosa …
Sono confuso sul significato di void *function(). È un puntatore a funzione o una funzione che ritorna void*? L'ho sempre usato su strutture di dati come una funzione ricorsiva che restituisce un puntatore, ma quando ho visto un codice in multithreading ( pthread) c'è una stessa dichiarazione di funzione. Ora …
Ho trovato questo pezzo di codice su GitHub ma non l'ho capito bene: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Poi: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.