cpp:classes
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:classes [2017/05/08 07:17] – [Οι μέθοδοι της κλάσης] gthanos | cpp:classes [2020/04/08 08:18] – [Κλάσεις και Αντικείμενα] gthanos | ||
---|---|---|---|
Line 13: | Line 13: | ||
void setWidth(int w); | void setWidth(int w); | ||
void setHeight(int h); | void setHeight(int h); | ||
- | int getWidth(); | + | int getWidth() |
- | int getHeight(); | + | int getHeight() |
}; | }; | ||
void Rectangle:: | void Rectangle:: | ||
void Rectangle:: | void Rectangle:: | ||
- | int Rectangle:: | + | int Rectangle:: |
- | int Rectangle:: | + | int Rectangle:: |
int main () { | int main () { | ||
Line 31: | Line 31: | ||
</ | </ | ||
- | Η παραπάνω κλάση διαθέτει τα πεδία τύπου //int width, height// και τις μεθόδους //setWidth, setHeight, getWidth, getHeight// | + | Η παραπάνω κλάση διαθέτει τα πεδία τύπου //int width, height// και τις μεθόδους //setWidth, setHeight, getWidth, getHeight// |
+ | |||
+ | ===== Διάκριση μεταξύ δήλωσης της κλάσης και υλοποίησης της κλάσης ===== | ||
+ | |||
+ | Στο προηγούμενο παράδειγμα, | ||
+ | |||
+ | <code cpp Rectangle.hpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | class Rectangle { | ||
+ | private: | ||
+ | int width, height; | ||
+ | public: | ||
+ | void setWidth(int w); | ||
+ | void setHeight(int h); | ||
+ | int getWidth() const; | ||
+ | int getHeight() const; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code cpp Rectangle.cpp> | ||
+ | #include " | ||
+ | |||
+ | void Rectangle:: | ||
+ | void Rectangle:: | ||
+ | int Rectangle:: | ||
+ | int Rectangle:: | ||
+ | </ | ||
+ | |||
+ | Ο λόγος που διακρίνουμε μία κλάση σε δήλωση και υλοποίηση είναι ότι η δήλωση της κλάσης μπορεί να χρειαστεί να γίνει //include// από περισσότερα του ενός αρχεία στο ίδιο πρόγραμμα. Η υλοποίηση όμως δεν θέλουμε να συμπεριληφθεί σε περισσότερα του ενός μεταγλωττισμένα αρχεία στο ίδιο πρόγραμμα, | ||
===== Οι μέθοδοι της κλάσης ===== | ===== Οι μέθοδοι της κλάσης ===== | ||
- | Οι μέθοδοι της κλάσης είναι συναρτήσεις οι οποίες έχουν απευθείας πρόσβαση στα πεδία (μεταβλητές) της κλάσης. Οι μέθοδοι ορίζονται μέσα στην κλάση ή ορίζεται το πρότυπο τους μέσα στην κλάση και η υλοποίηση τους εκτός. Από το παρακάτω παράδειγμα παρατηρήστε τους δύο διαφορετικούς τρόπους ορισμού των μεθόδων // | + | Οι μέθοδοι της κλάσης είναι συναρτήσεις οι οποίες έχουν απευθείας πρόσβαση στα πεδία (μεταβλητές) της κλάσης. Οι μέθοδοι ορίζονται μέσα στην κλάση ή ορίζεται το πρότυπο τους μέσα στην κλάση και η υλοποίηση τους εκτός. Από το παρακάτω παράδειγμα παρατηρήστε τους δύο διαφορετικούς τρόπους ορισμού των μεθόδων // |
<code c++ Rectangle.cpp> | <code c++ Rectangle.cpp> | ||
Line 59: | Line 90: | ||
<WRAP center round important 80%> | <WRAP center round important 80%> | ||
- | Οι μέθοδοι // | + | Οι μέθοδοι // |
- | + | ||
- | Η δήλωση //const// είναι εξαιρετικά σημαντική όταν θέλουμε να χρησιμοποιήσουμε τη συνάρτηση μέσα σε άλλες συναρτήσεις που είτε **α)** ανήκουν στην ίδια κλάση και δεν μεταβάλλουν το αντικείμενο στο οποίο εφαρμόζονται ή **β)** λαμβάνουν ως όρισμα ένα αντικείμενο της κλάσης το οποίο δεν μεταβάλλεται μέσα στο σώμα τους (λαμβάνουν ως παράμετρο μία αναφορά ή ένα δείκτη σε ένα αντικείμενο τύπου //const//). | + | |
</ | </ | ||
cpp/classes.txt · Last modified: 2021/05/06 23:01 (external edit)