Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει υπερφόρτωση φορέα;
Η υπερφόρτωση του χειριστή είναι μια τεχνική με την οποία οι χειριστές που χρησιμοποιούνται σε μια γλώσσα προγραμματισμού υλοποιούνται σε τύπους καθορισμένους από τον χρήστη με εξατομικευμένη λογική που βασίζεται στους τύπους των περασμάτων.
Η υπερφόρτωση του χειριστή διευκολύνει την εξειδίκευση της εφαρμογής που καθορίζεται από το χρήστη για λειτουργίες όπου ένας ή και οι δύο τελεστές είναι τύπου χρήστη ή τύπου δομής. Αυτό βοηθά τους τύπους που ορίζονται από τον χρήστη να συμπεριφέρονται σαν τους θεμελιώδεις πρωταρχικούς τύπους δεδομένων. Η υπερφόρτωση του χειριστή είναι χρήσιμη σε περιπτώσεις όπου οι χειριστές που χρησιμοποιούνται για ορισμένους τύπους παρέχουν σημασιολογία σχετιζόμενη με το περιβάλλον τομέα και συντακτική υποστήριξη όπως βρίσκεται στη γλώσσα προγραμματισμού. Χρησιμοποιείται για λόγους σύνθεσης, αναγνωσιμότητας και συντήρησης.
Η Java δεν υποστηρίζει την υπερφόρτωση του χειριστή, εκτός από τη συμβολοσειρά συμβολοσειρών για την οποία υπερφορτώνει εσωτερικά τον + χειριστή.
Η Techopedia εξηγεί την υπερφόρτωση του χειριστή
Οι χειριστές αναφέρονται με τη χρήση της φράσης τελεστή σε εκφράσεις και λειτουργική σημείωση στις δηλώσεις. Η σύνταξη, η προτεραιότητα και η συσχετιστικότητα ενός χειριστή δεν μπορούν να τροποποιηθούν με τη χρήση δηλωμένων από τον χρήστη δηλώσεων χειριστή.
Για παράδειγμα, οι χειριστές στο C # κατηγοριοποιούνται ανάλογα με τον τύπο της λειτουργίας που εκτελούν. Ορισμένες από αυτές είναι υπερφορτωμένες σε τύπους που ορίζονται από τον χρήστη, ορίζοντας τους σε λειτουργίες στατικών μελών και χρησιμοποιώντας τη λέξη-κλειδί του φορέα εκμετάλλευσης. Οι παράμετροι της συνάρτησης χειριστή αντιπροσωπεύουν τους τελεστές, ενώ ο τύπος επιστροφής μιας λειτουργίας χειριστή αντιπροσωπεύει το αποτέλεσμα της λειτουργίας. Η υπερφόρτωση εφαρμόζεται σε ζεύγη για τους χειριστές, όπως οι χειριστές σύγκρισης όπως "==" και "! =". Η μέθοδος Equals () για αυτούς τους χειριστές πρέπει να αντικατασταθεί για να αποφευχθεί μια προειδοποίηση μεταγλωττιστή. Η υπερφόρτωση δεν πρέπει να χρησιμοποιείται για χειριστές, όπως η υπό όρους, η λογική (και !!), η ανάθεση (+ =, - =, κ.λπ.), η χύτευση και η ευρετηρίαση των συστοιχιών ().
Συνιστάται ιδιαίτερα να εφαρμόζεται η υπερφόρτωση του χειριστή έτσι ώστε τα παραγόμενα αποτελέσματα να είναι αυτά που αναμένεται διαισθητικά από την προεπιλεγμένη υλοποίηση του χειριστή. Ορισμένοι μαθηματικοί κανόνες, όπως ο commutative law, που ισχύουν για εκφράσεις με δύο τελεστές, δεν μπορούν να εφαρμοστούν όταν χρησιμοποιούνται στην υπερφόρτωση για τύπους όπως ορίζονται μόνο για τους αριθμητικούς τελεστές.
