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:06] – [Δημιουργία κατασκευαστών αντιγραφέων] gthanos | cpp:copy_constructors [2019/04/19 09:37] – [Ορισμός ενός κατασκευαστή αντιγραφέα] 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 226: | Line 232: | ||
Για να αποφύγετε την παραπάνω συμπεριφορά θα πρέπει να ορίσετε τον δικό σας κατασκευαστή αντιγραφέα που κάνει τα εξής: | Για να αποφύγετε την παραπάνω συμπεριφορά θα πρέπει να ορίσετε τον δικό σας κατασκευαστή αντιγραφέα που κάνει τα εξής: | ||
- Δημιουργεί ένα νέο αντικείμενο τύπου //Point//. | - Δημιουργεί ένα νέο αντικείμενο τύπου //Point//. | ||
- | - Αντιγράφει τα περιεχόμενα του παλιού στο νέο. | + | - Αντιγράφει τα περιεχόμενα του παλιού |
Ο προτεινόμενος κατασκευαστής αντιγραφέας δίνεται παρακάτω: | Ο προτεινόμενος κατασκευαστής αντιγραφέας δίνεται παρακάτω: |
cpp/copy_constructors.txt · Last modified: 2022/05/12 19:41 by gthanos