cpp:const_member_functions
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:const_member_functions [2017/05/15 06:51] – gthanos | cpp:const_member_functions [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Const μέθοδοι της κλάσης ====== | ====== Const μέθοδοι της κλάσης ====== | ||
| - | Όταν δηλώνεται ένα αντικείμενο ως //const// (όπως παρακάτω), | + | Όταν δηλώνεται ένα αντικείμενο ως //const// (όπως παρακάτω), |
| <code cpp Rectangle.cpp> | <code cpp Rectangle.cpp> | ||
| Line 41: | Line 41: | ||
| </ | </ | ||
| - | Σε αυτή την περίπτωση λαμβάνετε το παρακάτω μήνυμα λάθους: | + | Σε αυτή την περίπτωση λαμβάνετε το παρακάτω μήνυμα λάθους |
| < | < | ||
| Rectangle5.cpp: | Rectangle5.cpp: | ||
| Line 49: | Line 49: | ||
| </ | </ | ||
| - | Η επεξήγηση του παραπάνω μηνύματος είναι ότι εφόσον το αντικείμενο είναι //const// θα πρέπει και η μέθοδοι που χρησιμοποιούμε για να προσπελάσουμε το αντικείμενο να είναι const, δηλαδή να δηλώνουν ότι δεν μεταβάλλουν το αντικείμενο κατά την εκτέλεση τους. Ο διορθωμένος κώδικας έχει ως εξής: | + | Η επεξήγηση του παραπάνω μηνύματος είναι ότι εφόσον το αντικείμενο είναι //const// θα πρέπει και η μέθοδοι που χρησιμοποιούμε για να προσπελάσουμε το αντικείμενο να είναι const, δηλαδή να δηλώνουν ότι δεν μεταβάλλουν το αντικείμενο κατά την εκτέλεση τους. Ο διορθωμένος κώδικας |
| <code cpp Rectangle.cpp> | <code cpp Rectangle.cpp> | ||
| Line 81: | Line 81: | ||
| </ | </ | ||
| - | Οι συναρτήσεις //getWidth// και //getHeight// δηλώνονται ως //const// καθώς δεν μεταβάλλουν το αντικείμενο. | + | ===== Υπερφόρτωση const και non-const |
| + | |||
| + | Στον παραπάνω κώδικα μπορείτε να έχετε δύο εκδόσεις | ||
| + | |||
| + | <code cpp Rectangle.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | class Rectangle { | ||
| + | private: | ||
| + | int width, height; | ||
| + | public: | ||
| + | Rectangle(int width, int height); | ||
| + | void setWidth(int width); | ||
| + | void setHeight(int height); | ||
| + | int getWidth() const; | ||
| + | int getHeight() const; | ||
| + | int getWidth() ; | ||
| + | int getHeight(); | ||
| + | }; | ||
| + | |||
| + | Rectangle:: | ||
| + | this-> | ||
| + | } | ||
| + | |||
| + | void Rectangle:: | ||
| + | void Rectangle:: | ||
| + | int Rectangle:: | ||
| + | int Rectangle:: | ||
| + | int Rectangle:: | ||
| + | int Rectangle:: | ||
| + | |||
| + | int main() { | ||
| + | const Rectangle rect1(10, | ||
| + | Rectangle rect2(10, | ||
| + | cout << "rect1 width: " << rect1.getWidth() << endl; | ||
| + | cout << "rect2 width: " << rect2.getWidth() << endl; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | Στο παραπάνω παράδειγμα, | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
cpp/const_member_functions.1494831069.txt.gz · Last modified: 2017/05/15 05:51 (external edit)
