Puntatori funzione di callback

July 3

Puntatori funzione di callback


Un callback è una tecnica di programmazione che consente a un'applicazione di effettuare una notifica quando qualcosa degno di nota accade. Per esempio, se si sta lavorando su un progetto, si potrebbe avere un accordo con il vostro capo che lei si avvisa quando si è finito con il vostro lavoro. Questo significa che il tuo capo non ha bisogno di continuare a controllare con voi sullo stato dei lavori. Un callback ha uno scopo simile.

puntatori a funzione

Nel linguaggio di programmazione C ++, i programmatori utilizzano un puntatore a funzione per implementare funzioni di callback. Un puntatore a funzione è un modo efficace di fare un richiamo in questo linguaggio di programmazione. Un puntatore a funzione consente una fonte di notifica di emettere un richiamo ad un ascoltatore. La fonte di notifica può inviare la richiamata in forma anonima con l'aiuto di un puntatore a funzione.

Metodo comune non necessaria

Un vantaggio di utilizzare puntatori a funzione per eseguire un callback è che la fonte di notifica e l'ascoltatore non devono avere lo stesso nome per il metodo di callback. Tuttavia, un puntatore a funzione richiede l'utilizzo della stessa firma per eseguire la richiamata.

Controllo e flessibilità

Un altro vantaggio di usare puntatori a funzione è che offrono la flessibilità. Questo è perché permettono al programmatore di implementare callback utilizzando metodi condivisi. Questo dà anche il programmatore più controllo dal momento che lei può impostare i callback da fare sulla base di metodi diversi.

svantaggi

L'uso di puntatori a funzione è disponibile anche con alcuni svantaggi. Per uno, i puntatori a funzione richiedono un'applicazione per accedere direttamente alla memoria, e questo può non essere sempre possibile. Inoltre, il modo in cui il puntatore a funzione è impostata potrebbe causare un'applicazione per bloccarsi quando questo codice viene eseguito. Questo potrebbe accadere se le liste dei parametri per i metodi differenti non corrispondono l'elenco dei parametri che utilizza il chiamante. A causa di questo inconveniente, potrebbe essere meglio andare per una tecnica di callback che utilizza interfacce piuttosto che gestori di funzione.