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 [2017/05/10 07:07] – gthanos | cpp:copy_constructors [2018/05/07 07:09] – [Ορισμός ενός κατασκευαστή αντιγραφέα] gthanos | ||
---|---|---|---|
Line 8: | Line 8: | ||
#include " | #include " | ||
- | void printArea(Rectangle r) { | + | void printArea(const Rectangle r) { |
cout << " area: " << r.getArea() << endl; | cout << " area: " << r.getArea() << endl; | ||
} | } | ||
Line 24: | Line 24: | ||
===== Ορισμός ενός κατασκευαστή αντιγραφέα ===== | ===== Ορισμός ενός κατασκευαστή αντιγραφέα ===== | ||
- | Ένας κατασκευαστής αντιγραφέας για την κλάση Rectangle ορίζεται ως εξής: | + | Ένας κατασκευαστής αντιγραφέας για την κλάση Rectangle |
<code cpp> | <code cpp> | ||
- | Rectangle:: | + | Rectangle:: |
width = r.width; height = r.height; | width = r.width; height = r.height; | ||
} | } | ||
</ | </ | ||
- | Συνολικά η κλάση // | + | Η μεταβλητή //r// δηλώνεται ως //const// διότι κατά την εκτέλεση του κατασκευαστή το αντικείμενο //r// δεν θα μεταβληθεί. |
<code cpp Rectangle.cpp> | <code cpp Rectangle.cpp> | ||
Line 78: | Line 78: | ||
<WRAP center round tip 80%> | <WRAP center round tip 80%> | ||
- | Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο // | + | Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο // |
</ | </ | ||
- | Μία άλλη περίπτωση κατά την οποία θα κληθεί o κατασκευαστής αντιγραφέας είναι η παρακάτω. Εδώ | + | Μία άλλη περίπτωση κατά την οποία θα κληθεί o κατασκευαστής αντιγραφέας είναι η παρακάτω. Εδώ η δήλωση της μεταβλητής |
<code cpp CopyRectangle.cpp> | <code cpp CopyRectangle.cpp> | ||
Line 103: | Line 103: | ||
} | } | ||
</ | </ | ||
- | Για τον μεταγλωττιστή όμως οι κώδικες είναι διαφορετικοί. Στην πρώτη περίπτωση καλείται ο κατασκευαστής αντιγραφέας (//copy constructor// | + | Για τον μεταγλωττιστή όμως οι κώδικες είναι διαφορετικοί. Στην πρώτη περίπτωση καλείται ο κατασκευαστής αντιγραφέας (//copy constructor// |
</ | </ | ||
cpp/copy_constructors.txt · Last modified: 2022/05/12 19:41 by gthanos