Βίντεο: Interactive C++: Meet Jupyter / Cling - Neil Horlock [ACCU 2019] 2024
Οι τύποι δεδομένων εγγενείς είναι ενσωματωμένοι στη γλώσσα C ++, όπως int , , και διπλό και τους διάφορους τύπους δείκτη. Το C ++ επιτρέπει στον προγραμματιστή να καθορίσει τους χειριστές για τις κλάσεις που ο προγραμματιστής δημιούργησε εκτός αυτών των εγγενών φορέων. Αυτό ονομάζεται υπερφόρτωση φορέα. Κανονικά, η υπερφόρτωση του χειριστή είναι προαιρετική και δεν επιχειρείται από αρχικούς προγραμματιστές C ++. Πολλοί έμπειροι προγραμματιστές C ++ δεν πιστεύουν ότι η υπερφόρτωση του χειριστή είναι τόσο μεγάλη ιδέα. Ωστόσο, θα πρέπει να μάθετε πώς να υπερφορτώσετε έναν χειριστή: τον τελεστή εκχώρησης.
a + b
θα μπορούσε να γίνει κατανοητή σαν να γράφτηκε
χειριστής + (a, b)
Στην πραγματικότητα, η C ++ δίνει σε κάθε χειριστή ένα όνομα στυλ λειτουργίας. Το λειτουργικό όνομα ενός χειριστή είναι το σύμβολο χειριστή που προηγείται από τον χειριστή λέξεων-κλειδιών και ακολουθείται από τους κατάλληλους τύπους παραδειγμάτων. Για παράδειγμα, ο χειριστής
+ που προσθέτει ένα int σε ένα int δημιουργώντας ένα int ονομάζεται int operator + (int, int).
. Ο νέος χειριστής μπορεί να έχει την ίδια σημασιολογία με τον χειριστή που υπερφορτώνει, αλλά δεν χρειάζεται. Κατά την υπερφόρτωση των χειριστών ισχύουν οι ακόλουθοι κανόνες: Ο προγραμματιστής δεν μπορεί να υπερφορτώσει το
-
. (τελεία), :: (παχέως εντέρου), . *, * ->, μέγεθος και ;: (τριμερείς) χειριστές.
-
. Η σύνταξη ενός χειριστή δεν μπορεί να αλλάξει. Επομένως, δεν μπορείτε να ορίσετε μια λειτουργία% i επειδή το% έχει ήδη οριστεί ως δυαδικός φορέας.
-
Η προτεραιότητα του χειριστή δεν μπορεί να αλλάξει. Ένα πρόγραμμα δεν μπορεί να αναγκάσει τον χειριστή + να αξιολογηθεί πριν από τον χειριστή *
-
. Οι χειριστές δεν μπορούν να επαναπροσδιοριστούν όταν εφαρμοστούν στους εγγενείς τύπους - δεν μπορείτε να αλλάξετε τη σημασία του 1 + 2. Οι υφιστάμενοι χειριστές μπορούν να υπερφορτωθούν μόνο για νεοδημιουργημένους τύπους.
-
Η υπερφόρτωση των χειριστών είναι ένα από τα πράγματα που μοιάζει με μια πολύ καλύτερη ιδέα από ό, τι πραγματικά είναι. Συνήθως, η υπερφόρτωση του χειριστή εισάγει περισσότερα προβλήματα από αυτά που λύνει.