cpp:copy_constructors
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:copy_constructors [2019/03/06 20:08] – [Δημιουργία κατασκευαστών αντιγραφέων] gthanos | cpp:copy_constructors [2019/04/19 09:39] – [Δημιουργία κατασκευαστών αντιγραφέων] gthanos | ||
---|---|---|---|
Line 26: | Line 26: | ||
Ένας κατασκευαστής αντιγραφέας για την κλάση Rectangle θα μπορούσε να είναι ο εξής: | Ένας κατασκευαστής αντιγραφέας για την κλάση Rectangle θα μπορούσε να είναι ο εξής: | ||
+ | <code cpp> | ||
+ | Rectangle:: | ||
+ | width = r.width; height = r.height; | ||
+ | } | ||
+ | </ | ||
+ | ή ο παρακάτω | ||
<code cpp> | <code cpp> | ||
Rectangle:: | Rectangle:: | ||
Line 32: | Line 38: | ||
</ | </ | ||
- | Η μεταβλητή //r// δηλώνεται ως //const// διότι κατά την εκτέλεση του κατασκευαστή το αντικείμενο //r// δεν | + | Στη 2η περίπτωση, |
<code cpp Rectangle.cpp> | <code cpp Rectangle.cpp> | ||
Line 78: | Line 84: | ||
<WRAP center round tip 80%> | <WRAP center round tip 80%> | ||
- | Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο // | + | Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο // |
</ | </ | ||
Line 106: | Line 112: | ||
</ | </ | ||
- | ===== Δημιουργία κατασκευαστών αντιγραφέων ===== | + | ===== Μια πιο σύνθετη περίπτωση ===== |
Στις περιπτώσεις που υπάρχουν πεδία δείκτες που δείχνουν σε άλλα αντικείμενα (στατικά ή δυναμικά δεσμευμένα) αντιγράφονται οι διευθύνσεις αυτές, όπως θα αντιγράφονταν οποιοδήποτε άλλο πεδίο. Αυτό πρακτικά σημαίνει ότι δύο ή περισσότερα αντικείμενα δείχνουν σε μία κοινή περιοχή μνήμης. Το παραπάνω μπορεί να προκαλέσει δυσλειτουργίες καθώς η μεταβολή του κοινού αντικειμένου επηρεάζει το σύνολο των αντικειμένων που το μοιράζονται. | Στις περιπτώσεις που υπάρχουν πεδία δείκτες που δείχνουν σε άλλα αντικείμενα (στατικά ή δυναμικά δεσμευμένα) αντιγράφονται οι διευθύνσεις αυτές, όπως θα αντιγράφονταν οποιοδήποτε άλλο πεδίο. Αυτό πρακτικά σημαίνει ότι δύο ή περισσότερα αντικείμενα δείχνουν σε μία κοινή περιοχή μνήμης. Το παραπάνω μπορεί να προκαλέσει δυσλειτουργίες καθώς η μεταβολή του κοινού αντικειμένου επηρεάζει το σύνολο των αντικειμένων που το μοιράζονται. |
cpp/copy_constructors.txt · Last modified: 2022/05/12 19:41 by gthanos