Skip to main content

Τι είναι ο κατασκευαστής αντιγράφων;

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

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

σε γλώσσες C ++, πολλές λειτουργίες απαιτούν δείκτη μνήμης.Αυτό λέει τη λειτουργία ακριβώς πού να κοιτάξετε στη μνήμη για ορισμένες πληροφορίες ή πού μπορεί να αποθηκεύσει δεδομένα.Ο προγραμματιστής πρέπει να καθορίσει έναν νέο δείκτη μνήμης όταν χρησιμοποιείται ένας κατασκευαστής αντιγραφής.Διαφορετικά, τα δύο αντικείμενα θα χρησιμοποιούν τον ίδιο χώρο μνήμης.Στην επιφάνεια, αυτό μπορεί να μην φαίνεται κακό, αλλά μπορεί να οδηγήσει σε ασυνέπειες.Για παράδειγμα, εάν και τα δύο αντικείμενα μοιράζονται τον ίδιο δείκτη και ένα αντικείμενο χρησιμοποιείται για την υποβολή αιτήσεων δανείου, ενώ το αντικείμενο αντιγραφής γίνεται για την υποβολή αιτήσεων πιστωτικής κάρτας, τότε όλες οι αιτήσεις πιστωτικής κάρτας θα αποθηκευτούν με τις αιτήσεις δανείου.Να είστε προσεκτικοί για τη διαγραφή ενός αντικειμένου, επειδή τα αντικείμενα κατασκευαστή αντιγραφής δεν μπορούν να λειτουργήσουν ανεξάρτητα.Εάν ο προγραμματιστής διαγράψει το αρχικό αντικείμενο, τότε το αντικείμενο που αντιγράφηκε δεν θα έχει τίποτα να αναφερθεί.Χωρίς κώδικα αναφοράς, το αντιγραφικό αντικείμενο δεν θα είναι σε θέση να εκτελέσει το έργο του και θα γίνει άχρηστο.