..


Σύνδεσμοι διαφημιζόμενων

Η υπερφόρτωση νέα και διαγραφή φορέων σε C + +

Το άρθρο γράφτηκε από Damiano Verda
Σελίδα 1 από 2

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

Με λίγα λόγια, η «υπερφόρτωση είναι, σε γενικές γραμμές, ένα μηχανισμό για τη διαφοροποίηση των λειτουργιών με το ίδιο όνομα (και συνήθως κάνει μια παρόμοια, αλλά όχι ολόιδια) με βάση τον αριθμό και το είδος των παραμέτρων που παρέχονται.
Για παράδειγμα, έχω ορίσει δύο λειτουργίες εκτύπωσης, μια γενική (χωρίς παραμέτρους) που εκτυπώνει μια σειρά από προκαθορισμένες πληροφορίες, και ένα άλλο στο οποίο ο χρήστης μπορεί να καθορίσει με την κατάλληλη ρύθμιση παραμέτρων, τις πληροφορίες που παρουσιάζουν ενδιαφέρον και ως εκ τούτου να εκτυπωθούν.

Η λειτουργία εκτύπωσης είναι, κατά συνέπεια, στην προκειμένη περίπτωση εκ νέου για να ταιριάξει τις διαφορετικές πληροφορίες που παρέχονται από την είσοδο του χρήστη. Ομοίως, η C + + σας επιτρέπει να επαναπροσδιορίσουμε φορείς: σκεφτόμαστε τον μαθηματικούς τελεστές "+", "-", "*" και "/". Μπορεί να είναι ενδιαφέρον και πρακτική, για παράδειγμα, επαναπροσδιορισμό του "+" χειριστής εφαρμόζεται, αν όχι τους αριθμούς, αλλά χορδές (σύνολα αλφαριθμητικούς χαρακτήρες). Στην τελευταία περίπτωση, το "άθροισμα" αντιστοιχεί στην αλληλουχία των χορδών, για παράδειγμα, αν το string "Hello" και β στο string "κόσμο", η λειτουργία

 



 χορδή γ = α + β

 
οδηγήσει στη δημιουργία του string γ, του οποίου η αξία είναι "Hello world".

«S υπερφορτωμένο, και ιδίως το χειριστή υπερφόρτωση σε C ​​+ + , εξακολουθούν να αντιμετωπίζονται με ένα προηγούμενο άρθρο, στην οποία και παραπέμπουμε για περαιτέρω έρευνα.

Προτείνουμε τώρα να εξετάσει το ενδεχόμενο, ωστόσο, ειδικά το πώς ο ίδιος μηχανισμός μπορεί να επεκταθεί σε άλλους τύπους φορέων και πόσο χρήσιμο, ιδίως σε σχέση με το νέο και τη διαγραφή φορέων, χρήσιμες για τη διαχείριση της μνήμης.

Διαχείριση Μνήμης

Το νέο και διαγραφή φορέων είναι χρήσιμα για τη διαχείριση της μνήμης, ιδίως για να κάνετε κράτηση και να εκχωρήσετε (ή να τα διαθέσει) η μνήμη που απαιτείται για ένα νέο αντικείμενο (νέα) και την ελεύθερη (ή deallocate) στη μνήμη για μελλοντική χρήση (διαγραφή).

Μια πολύ ενδιαφέρουσα πτυχή της C + +, που τη διακρίνει από C, είναι η ύπαρξη νέων και διαγραφή, τα οποία επιτρέπουν, για παράδειγμα όσον αφορά τις νέες, για τον υπολογισμό του χώρου που απαιτείται για κάθε αντικείμενο αυτόματα (ενώ η εντολή ισοδύναμο C, malloc, απαιτεί τον προγραμματιστή για να καθορίσετε ποιο είναι το μέγεθος του αντικειμένου που θα διατεθούν).

Σε αυτό το σημείο είναι φυσικό να αναρωτηθούμε τι θα μπορούσε να είναι η χρησιμότητα ενός μηχανισμού για την υπερφόρτωση, αφού η δύναμη των νέων και να διαγράψει είναι απλά μια μεγάλη γενική χρήση, φαίνεται περιττό να κάνει ένα νέο ορισμό ο οποίος λαμβάνει υπόψη ορισμένες περιπτώσεις. Η τιμή του φορέα εκμετάλλευσης είναι τόσο γενική, αλλά, όπως συχνά συμβαίνει, κάποια έλλειψη στον έλεγχο του. Για παράδειγμα, δεν είναι δυνατό, χρησιμοποιώντας την προεπιλεγμένη έκδοση του νέου φορέα, απλά ελέγχουν αν υπήρξαν προβλήματα στην κατανομή των απαραίτητων μνήμη (μνήμη είναι διαθέσιμη; έχει κατανεμηθεί σωστά;). Για να ξεπεραστεί αυτό το πρόβλημα μπορεί κανείς να προσφεύγει σε «υπερφορτωμένο.

Έτσι, θα συζητήσουμε τώρα με ένα απλό παράδειγμα, την περίπτωση της υπερφόρτωσης του νέου φορέα, τονίζοντας ότι οι εκτιμήσεις θα δοθούν και τις διαδικασίες που ισχύουν ακόμα και αν θέλετε να διαγράψετε από τον φορέα εκμετάλλευσης υπερφόρτωση.

Στην ίδια κατηγορία ...
E-Learning
AutoCAD (eBook) AutoCAD (eBook)
Δημιουργία αρχιτεκτονικές δομές. Σε μόνο 29 €.
E-commerce με ASP (ebook) E-commerce με ASP (ebook)
Ηλεκτρονικό εμπόριο και Καλάθι με ASP. Μόνο 35 €.
Linux (Μάθημα) Linux (Μάθημα)
Πλήρης οδηγός για την open-source σύστημα. Από 49 €.
Σύνδεσμοι διαφημιζόμενων