Βίντεο: Builderall - 5000€ Landingpage nachbauen in unter 30 Minuten - Builderall Deutsch 2024
Ο κατασκευαστής είναι μια ειδική συνάρτηση που C ++ ενεργοποιείται αυτόματα όταν δημιουργείται ένα αντικείμενο για να επιτρέψει στο αντικείμενο να αρχικοποιηθεί. Υπάρχουν δύο συγκεκριμένες παραλλαγές του κατασκευαστή που είναι γνωστές ως κατασκευαστές κινήσεων αντίγραφο και .
Ένας κατασκευαστής αντιγράφων είναι ο κατασκευαστής που χρησιμοποιεί η C ++ για να δημιουργήσει αντίγραφα αντικειμένων. Έχει το όνομα X:: X (const X &), όπου X είναι το όνομα της κλάσης. Δηλαδή, είναι ο κατασκευαστής της κλάσης X, που παίρνει ως επιχείρησή της μια αναφορά σε ένα αντικείμενο κατηγορίας X . Αυτό ακούγεται πραγματικά άχρηστο, αλλά χρειάζεται μόνο ένα λεπτό για να διερευνήσετε γιατί η C ++ χρειάζεται τέτοιες beasties.
Σκεφτείτε για λίγο τι συμβαίνει όταν καλείτε μια συνάρτηση όπως η παρακάτω:
void fn (Student fs) {// … ίδιο σενάριο; διαφορετικό όρισμα …} int main (int argcs, char * pArgs []) {Φοιτητής ms; fn (ms). return 0;}
Στην κλήση στο fn (), η C ++ περνάει ένα αντίγραφο του αντικειμένου ms και όχι το ίδιο το αντικείμενο.
Τώρα εξετάστε τι σημαίνει να δημιουργήσετε ένα αντίγραφο ενός αντικειμένου. Πρώτον, χρειάζεται ένας κατασκευαστής να δημιουργήσει ένα αντικείμενο, ακόμα και ένα αντίγραφο ενός υπάρχοντος αντικειμένου. Το C ++ θα μπορούσε να δημιουργήσει έναν προεπιλεγμένο κατασκευαστή αντιγράφων που αντιγράφει το υπάρχον αντικείμενο στο νέο αντικείμενο ένα byte κάθε φορά.
Αυτό είναι τι γίνονται οι παλαιότερες γλώσσες, όπως το C. Αλλά τι γίνεται αν η τάξη δεν θέλει ένα απλό αντίγραφο του αντικειμένου; Τι γίνεται αν απαιτείται κάτι άλλο; (Ignore το "γιατί" για λίγο.) Η τάξη πρέπει να είναι σε θέση να καθορίσει ακριβώς πώς το αντίγραφο πρέπει να δημιουργηθεί.
Έτσι, το C ++ χρησιμοποιεί έναν κατασκευαστή αντιγράφων στο προηγούμενο παράδειγμα για να δημιουργήσει ένα αντίγραφο του αντικειμένου ms στη στοίβα κατά τη διάρκεια της κλήσης της λειτουργίας fn (). Αυτός ο συγκεκριμένος κατασκευαστής αντιγράφων θα είναι Student:: Student (Student &) - πείτε ότι τρεις φορές γρήγορα.