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

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

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

Ας υποθέσουμε ότι θέλετε να κάνετε μια λειτουργία , Mult , που πολλαπλασιάζει δύο αριθμούς . Μπορείτε να γράψετε μια ξεχωριστή έκδοση για κάθε τύπο δεδομένων , η οποία είναι η μέθοδος υπερφόρτωση , ή μπορείτε να χρησιμοποιήσετε τα πρότυπα C + + λειτουργία και έχουν μία υπογραφή λειτουργία αντί για τρεις . Templates C + + λειτουργία αυτοματοποίηση τύπου παράδοση , δίνει στο χρήστη τη βιβλιοθήκη πιο εκφραστική δύναμη και να μειώσει το κόστος της συντήρησης κώδικα . Τα πράγματα που θα χρειαστείτε
Σύνθετη C + +
C + + compiler με IDE , όπως
Bloodshed του
Παρουσίαση Περισσότερες οδηγίες
Η 1

Overload μια λειτουργία που πολλαπλασιάζει τους αριθμούς του τύπου int , float και double:
int Mult ( int a , int b ) {
επιστρέψει ( α * β ) ? }

επιπλέουν Mult ( float a, float b ) {
επιστροφή (μια * β) ? }

διπλό Mult ( διπλό , διπλό β ) {
επιστροφή ( α * β) ? }
2

κάνετε το ίδιο πράγμα που βήμα 1 κάνει , χρησιμοποιώντας πρότυπα C + + λειτουργία :
πρότυπο
T Mult ( T a , T β) {
επιστρέψει ( α * β ) ? }

εικόνων 3

Σύγκριση Βήμα 2 στο βήμα 1 . Το επιπλέον γραμμή κώδικα εισάγεται πάνω ορισμού της συνάρτησης στο Βήμα 2 φαίνεται σαν μια καλή ανταλλαγή μεταξύ για την επανάληψη το σώμα λειτουργία δύο ή περισσότερες φορές .
Η 4

Επιστροφή στον κώδικα του Βήματος 2 . T είναι η TypeName . Η λέξη-κλειδί class T σημαίνει ότι μπορεί να πάρει οποιαδήποτε ταυτότητα . Είναι ένα γενικό τύπο που ο compiler ερμηνεύει on the fly ανάλογα με το ποια παράμετρος περνάει ο χρήστης σε αυτό. Έτσι T μπορεί να είναι ένας ακέραιος , float, ένα διπλό ή μια κατηγορία που έχει τη πολλαπλασιάζονται φορέα που ορίζεται ? Αλλιώς η πολλαπλασιάζονται λειτουργία παραμένει απροσδιόριστη
5

Test καλά η υπογραφή λειτουργία που χρησιμοποιεί πρότυπα . . Εκτελέστε τις δοκιμές με όλα τα αναμενόμενα τύπους δεδομένων για να διασφαλιστεί ότι δεν έχετε απρόσμενα αποτελέσματα .
Η
εικόνων

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

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