cpp:const_member_functions
Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
cpp:const_member_functions [2017/05/15 07:41] gthanos |
cpp:const_member_functions [2019/03/07 05:42] gthanos [Υπερφόρτωση const και non-const συναρτήσεων] |
| ====== Const μέθοδοι της κλάσης ====== | ====== Const μέθοδοι της κλάσης ====== |
| |
| Όταν δηλώνεται ένα αντικείμενο ως //const// (όπως παρακάτω), τότε οι μεταβλητές του αντικειμένου μπορούν μόνο να διαβαστούν αλλά όχι να μεταβληθούν, πρόκειται δηλαδή για ένα αμετάβλητο αντικείμενο. Παρατηρήστε βέβαια, ότι ο κατασκευαστής του αντικειμένου αρχικοποιεί κανονικά το αντικείμενο και μεταβάλλει τις μεταβλητές του. | Όταν δηλώνεται ένα αντικείμενο ως //const// (όπως παρακάτω), τότε τα πεδία του αντικειμένου μπορούν μόνο να διαβαστούν αλλά όχι να μεταβληθούν, πρόκειται δηλαδή για ένα αμετάβλητο αντικείμενο. Εξαίρεση αποτελεί ο κατασκευαστής του αντικειμένου, ο οποίος αρχικοποιεί κανονικά το αντικείμενο και μεταβάλλει τις μεταβλητές του. |
| |
| <code cpp Rectangle.cpp> | <code cpp Rectangle.cpp> |
| </code> | </code> |
| |
| Σε αυτή την περίπτωση λαμβάνετε το παρακάτω μήνυμα λάθους: | Σε αυτή την περίπτωση λαμβάνετε το παρακάτω μήνυμα λάθους από το μεγαγλωττιστή: |
| <code> | <code> |
| Rectangle5.cpp: In function ‘int main()’: | Rectangle5.cpp: In function ‘int main()’: |
| </code> | </code> |
| |
| <WRAP center round tip 60%> | <WRAP center round tip 80%> |
| Η ύπαρξη της //non-const// μεθόδου στο συγκεκριμένο παράδειγμα είναι πλεονασμός καθώς η //const// μέθοδος μπορεί να κληθεί και από //non-const// αντικείμενα. Όπως δείξαμε ο περιορισμός ισχύει στο αντίστροφο, δηλαδή ένα //const// αντικείμενο δεν μπορεί να καλέσει μία //non-const// μέθοδο. | Στο παραπάνω παράδειγμα, η ύπαρξη της //non-const// μεθόδου στο συγκεκριμένο παράδειγμα είναι πλεονασμός καθώς η //const// μέθοδος μπορεί να κληθεί και από //non-const// αντικείμενα. Όπως δείξαμε ο περιορισμός ισχύει κατά το αντίστροφο, δηλαδή ένα //const// αντικείμενο δεν μπορεί να καλέσει μία //non-const// μέθοδο. |
| </WRAP> | </WRAP> |
| |
cpp/const_member_functions.txt · Last modified: 2021/05/07 07:50 (external edit)