Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come utilizzare i puntatori a funzione in C + +

Un puntatore a funzione è , in sostanza , solo un puntatore a una funzione . In linguaggi come C + + , ogni funzione e variabile in un programma per computer esiste un indirizzo di memoria , e una variabile può contenere il valore di tale indirizzo. Tale variabile può essere passato a un callback , che può quindi chiamare la funzione che i punti variabili . Può anche essere utilizzato in un gestore evento , o per l'associazione tardiva di una funzione membro . Grazie alla loro sintassi complicata , puntatori a funzione sono spesso evitati dai programmatori , ma possono essere utilizzati per realizzare facilmente molti compiti potenti . Cose che ti serviranno
compilatore C + +
Mostra più istruzioni
1

scrivere un programma C + + . Questo è il programma in cui si intende utilizzare un puntatore a funzione .
2

Definire un puntatore a funzione . Si può fare questo uno dei diversi modi . Dichiarare una funzione , come ad esempio:

vuoto doSomething ( int data);

e poi dichiarare un puntatore ad esso . In alternativa , è possibile dichiarare una funzione come un puntatore :

void ( * doSomething ) ( int);

Infine , è possibile dichiarare un typedef , quindi creare una variabile di quel tipo < br . >

typedef void ( * voidTakingInt ) ( int);

È ora possibile utilizzare " voidTakingInt " come tipo :

vuoto doSomething ( int data ) ; voidTakingInt fun_ptr = & doSomething ;

3

dichiarare qualcosa che utilizza il puntatore a funzione . Questo sarà spesso qualcosa che utilizza il puntatore funzione come funzione callback , in modo che quando si verifica un evento specifico , la funzione esegue la funzione . Un esempio è una funzione di file - caricamento che prende una funzione di callback per indicare il progresso .
4

Chiamare la funzione dal puntatore ad esso. Ciò avverrebbe all'interno della funzione che hai scritto che accetta un puntatore a funzione come parametro :

vuoto doSomething ( int data) { }

vuoto callAnotherFunction (void ( * otherFunction ) (int ) ) {

( * otherFunction ) ( 3) ;

}

int main ( int argc , char * argv [ ] ) {

callAnotherFunction ( & doSomething ) ; return 0; }



 

Programmazione © www.354353.com