Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να χρησιμοποιήσετε Δείκτες Λειτουργία σε C + +

A δείκτη συνάρτησης είναι , στην ουσία , μόνο ένας δείκτης σε μια λειτουργία . Σε γλώσσες όπως η C + + , κάθε λειτουργία και στην μεταβλητή σε ένα πρόγραμμα υπολογιστή υπάρχει ως διεύθυνση μνήμης , και μια μεταβλητή μπορεί να περιέχει την αξία του αυτή τη διεύθυνση . Αυτό μεταβλητή μπορεί να περάσει σε ένα επανάκλησης , το οποίο μπορεί στη συνέχεια να καλέσετε τη λειτουργία που της μεταβλητής δείχνει σε . Μπορεί επίσης να χρησιμοποιηθεί σε έναν διαχειριστή γεγονός, ή για καθυστέρηση δεσμεύσεως μιας συνάρτησης μέλους . Λόγω περίπλοκη σύνταξη τους , τους δείκτες συναρτήσεων είναι συχνά αποφεύγεται από τους προγραμματιστές , αλλά μπορεί να χρησιμοποιηθεί για να επιτευχθεί εύκολα πολλά ισχυρά καθήκοντα . Τα πράγματα που θα χρειαστείτε
C + + compiler

Παρουσίαση Περισσότερες οδηγίες
Η 1

Γράψτε μια C + + πρόγραμμα . Αυτό είναι το πρόγραμμα στο οποίο θα χρησιμοποιήσετε το δείκτη του λειτουργία . 2

Ορίστε ένα δείκτη λειτουργία . Μπορείτε να το κάνετε αυτό με διάφορους τρόπους . Για να δηλώσετε μια λειτουργία , όπως :

άκυρη doSomething ( δεδομένα int ) ?

Και αργότερα δηλώνουμε έναν pointer σε αυτό . Ή , μπορείτε να δηλώσετε μια λειτουργία ως δείκτης :

void ( * doSomething ) ( int ) ?

Τέλος , μπορείτε να δηλώσετε ένα typedef , στη συνέχεια, δημιουργήστε μια μεταβλητή αυτού του τύπου

typedef void ( * voidTakingInt ) ( int ) ?

Μπορείτε τώρα να χρησιμοποιήσετε το " voidTakingInt " ως ένα είδος :

άκυρη doSomething ( δεδομένων int ) ? voidTakingInt fun_ptr = & doSomething ?

Η 3

να αναγνωρίσει κάτι που χρησιμοποιεί το δείκτη λειτουργίας . Αυτό θα είναι συχνά κάτι που χρησιμοποιεί το δείκτη λειτουργία ως λειτουργία επανάκλησης , έτσι ώστε όταν συμβεί ένα συγκεκριμένο γεγονός , η λειτουργία εκτελείται η λειτουργία σας . Ένα παράδειγμα είναι μια λειτουργία αρχείου φόρτωσης που παίρνει μια λειτουργία επανάκλησης να αναφέρουν την πρόοδο .
Η 4

Καλέστε τη λειτουργία από το δείκτη σε αυτό . Αυτό θα γίνει μέσα από τη λειτουργία που έγραψε ότι δέχεται ένα δείκτη λειτουργεί ως παράμετρος :

άκυρη doSomething ( δεδομένων int ) { }

άκυρη callAnotherFunction (void ( * otherFunction ) ( int) ) {

( * otherFunction ) ( 3 ) ?

}

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

callAnotherFunction ( & doSomething ) ? επιστροφή 0? }


Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα