Skip to main content

Τι είναι η υπερφόρτωση του χειριστή;

Η υπερφόρτωση του χειριστή είναι μια δυνατότητα γλώσσας προγραμματισμού υπολογιστή που επιτρέπει σε έναν προγραμματιστή να παρακάμψει έναν προεπιλεγμένο χειριστή.Όταν η λειτουργία του χειριστή είναι υπερφορτωμένη, μπορεί να δηλωθεί με προσαρμοσμένα επιχειρήματα που είναι διαφορετικοί τύποι δεδομένων από ό, τι ο χειριστής ήταν ικανός να χειρίζεται από προεπιλογή.Οι νέες παράμετροι μπορεί να είναι πρωτόγονες ή καθορισμένοι από τους χρήστες τύπους.Μέσα στο σώμα της υπερβολικής συνάρτησης, ένας προγραμματιστής μπορεί να χειριστεί τις τιμές των παραμέτρων όπως επιθυμείτε.Με τη χρήση της υπερφόρτωσης του χειριστή, ένας προγραμματιστής μπορεί να δημιουργήσει διαισθητικές συντομεύσεις για τον χειρισμό των τύπων δεδομένων που καθορίζονται από το χρήστη ή να τροποποιήσει τον τρόπο αντιμετώπισης των τύπων δεδομένων.από αυτά μαζί ή αυξάνοντας τα εσωτερικά δεδομένα χρησιμοποιώντας τον χειριστή Unary Increment με τον τύπο δεδομένων.Οι χειριστές, συμπεριλαμβανομένου του συμβόλου προσθήκης, μπορούν να αντικατασταθούν έτσι ώστε εάν χρησιμοποιούνται ως δυαδικοί χειριστές μεταξύ δύο προσαρμοσμένων τύπων δεδομένων, επιστρέφουν ένα αποτέλεσμα καθορισμένο από το χρήστη.Κατά τον ίδιο τρόπο, ένας φορέας εκμετάλλευσης, όπως ο χειριστής αύξησης, μπορεί να αντικατασταθεί για να αυξήσει μια εσωτερική τιμή εντός του τύπου που ορίζεται από το χρήστη.Ένας υπερφορτωμένος χειριστής.Ο μεταγλωττιστής αποφασίζει τη σωστή ενέργεια που πρέπει να αναλάβει με βάση τους τύπους δεδομένων που χρησιμοποιούνται ως τελεστές ή σε συνδυασμό με τον χειριστή.Εάν οι τελεστές, οι οποίοι είναι τιμές παραμέτρων στη λειτουργία του χειριστή, είναι τύποι δεδομένων που καθορίζονται από το χρήστη, ο μεταγλωττιστής θα επιλέξει τη συνάρτηση υπερφορτωμένων που έχουν παραμέτρους που ταιριάζουν με τους τελεστές που χρησιμοποιούνται.Πολυμορφισμός HOC.Οι διαφορετικές γλώσσες μπορούν να επιτρέψουν τη δημιουργία νέων προσαρμοσμένων χειριστών, την υπερφόρτωση όλων ή ορισμένων από τους χειριστές της ή μπορεί να μην επιτρέψουν την υπερφόρτωση του χειριστή καθόλου.Οι C ++, C#, PHP και Perl επιτρέπουν σε μερικούς από τους χειριστές τους να υπερφορτωθούν.Η υπερφόρτωση του χειριστή δεν επιτρέπεται σε C, Java και Javascript.Κάποιοι ισχυρίζονται ότι δίνοντας στον προγραμματιστή την ελευθερία της αλλαγής του τρόπου με τον οποίο συμπεριφέρεται ο χειριστής θα μπορούσε να εισαγάγει τη δυνατότητα δημιουργίας ακούσιων σφαλμάτων από άλλους προγραμματιστές που χρησιμοποιούν τον προσαρμοσμένο κώδικα.Η αντίθετη άποψη προτείνει ότι η υπερφόρτωση του χειριστή δίνει στους προγραμματιστές την ικανότητα δημιουργίας διαισθητικού και συνοπτικού κώδικα που θα είναι ευκολότερο να κατανοηθεί, να κοστίσει λιγότερο για την παραγωγή και τη μείωση των σφαλμάτων.