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.
Ultimamente ho avuto qualche esperienza con i puntatori a funzione in C. Quindi, continuando con la tradizione di rispondere alle tue domande, ho deciso di fare un piccolo riassunto delle basi, per coloro che hanno bisogno di un rapido approfondimento sull'argomento.
Ho un metodo che è di circa dieci righe di codice. Voglio creare più metodi che facciano esattamente la stessa cosa, ad eccezione di un piccolo calcolo che cambierà una riga di codice. Questa è un'applicazione perfetta per passare un puntatore a funzione per sostituire quella riga, ma Java non …
Sto cercando di memorizzare in un std::tuplenumero variabile di valori, che verranno successivamente utilizzati come argomenti per una chiamata a un puntatore a funzione che corrisponde ai tipi memorizzati. Ho creato un esempio semplificato che mostra il problema che sto lottando per risolvere: #include <iostream> #include <tuple> void f(int a, …
Sono sempre stato un po 'sconcertato quando leggevo il codice di altre persone che aveva battute dattiloscritte per puntatori a funzioni con argomenti. Ricordo che mi ci volle un po 'per arrivare a una simile definizione mentre cercavo di capire un algoritmo numerico scritto in C qualche tempo fa. Quindi, …
È possibile passare una funzione lambda come puntatore a funzione? In tal caso, devo fare qualcosa in modo errato perché visualizzo un errore di compilazione. Considera il seguente esempio using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int …
Ho appena visto una foto oggi e penso che apprezzerei le spiegazioni. Quindi ecco l'immagine: Ho trovato questo confuso e mi chiedevo se tali codici fossero mai pratici. Ho cercato su Google l'immagine e ho trovato un'altra immagine in questa voce reddit, ed ecco quella foto: Quindi questa "lettura a …
Esiste un modo per passare una funzione di richiamata in un metodo Java? Il comportamento che sto cercando di imitare è un delegato .Net che viene passato a una funzione. Ho visto persone suggerire di creare un oggetto separato, ma questo sembra eccessivo, tuttavia sono consapevole che a volte l'eccesso …
Per una classe voglio memorizzare alcuni puntatori di funzione alle funzioni membro della stessa classe in un oggetto di mapmemorizzazione std::function. Ma non riesco proprio all'inizio con questo codice: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Ricevo error C2064: …
Ho trovato un Ccodice che stampa da 1 a 1000 senza loop o condizionali : ma non capisco come funzioni. Qualcuno può passare attraverso il codice e spiegare ogni riga? #include <stdio.h> #include <stdlib.h> void main(int j) { printf("%d\n", j); (&main + (&exit - &main)*(j/1000))(j+1); }
Questo può essere qualcosa di comune e banale, ma mi sembra di avere problemi a trovare una risposta concreta. In C # esiste un concetto di delegati, che è fortemente correlato all'idea di puntatori a funzioni di C ++. Esiste una funzionalità simile in Java? Dato che i puntatori sono …
Ho letto che convertire un puntatore a funzione in un puntatore dati e viceversa funziona sulla maggior parte delle piattaforme ma non è garantito che funzioni. Perché è così? Entrambi non dovrebbero essere semplicemente indirizzi nella memoria principale e quindi essere compatibili?
La domanda è la seguente: considera questo pezzo di codice: #include <iostream> class aClass { public: void aTest(int a, int b) { printf("%d + %d = %d", a, b, a + b); } }; void function1(void (*function)(int, int)) { function(1, 1); } void test(int a,int b) { printf("%d - %d …
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.