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:acccess_modifiers [2017/04/20 14:00] gthanos |
cpp:acccess_modifiers [2018/05/02 08:12] gthanos [Παράδειγμα χρήσης προσδιοριστών πρόσβασης] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Οι προσδιοριστές πρόσβασης επιτρέπουν την απόκρυψη της πληροφορίας που είναι από τις βασικές αρχές του αντικειμενοστραφή προγραμματισμού. Με την έννοια //" | Οι προσδιοριστές πρόσβασης επιτρέπουν την απόκρυψη της πληροφορίας που είναι από τις βασικές αρχές του αντικειμενοστραφή προγραμματισμού. Με την έννοια //" | ||
| - | Σε μία κλάση μπορούν να οριστούν οι προσδιοριστές πρόσβασης //public//, // | + | Σε μία κλάση μπορούν να οριστούν οι προσδιοριστές πρόσβασης //public//, // |
| - **public:** Ένα μέλος της κλάσης που δηλώνεται ως //public// είναι προσβάσιμο από οποιαδήποτε άλλη κλάση ή συνάρτηση που δεν ανήκει σε κλάση. | - **public:** Ένα μέλος της κλάσης που δηλώνεται ως //public// είναι προσβάσιμο από οποιαδήποτε άλλη κλάση ή συνάρτηση που δεν ανήκει σε κλάση. | ||
| - **protected: | - **protected: | ||
| - **private: | - **private: | ||
| + | |||
| + | ===== Παράδειγμα χρήσης προσδιοριστών πρόσβασης ===== | ||
| Δείτε το παρακάτω παράδειγμα χρήσης των προσδιοριστών πρόσβασης μέσω των κλάσεων //Cuboid// (κυβοειδές) και //Cube// (κύβος) που κληρονομεί την κλάση //Cuboid//. | Δείτε το παρακάτω παράδειγμα χρήσης των προσδιοριστών πρόσβασης μέσω των κλάσεων //Cuboid// (κυβοειδές) και //Cube// (κύβος) που κληρονομεί την κλάση //Cuboid//. | ||
| Line 23: | Line 25: | ||
| void setWidth(int w); | void setWidth(int w); | ||
| void setHeight(int h); | void setHeight(int h); | ||
| - | void setLength(int l): | + | void setLength(int l); |
| int getWidth(); | int getWidth(); | ||
| int getHeight(); | int getHeight(); | ||
| Line 49: | Line 51: | ||
| class Cube:Cuboid { // Cube extends Cuboid | class Cube:Cuboid { // Cube extends Cuboid | ||
| public: | public: | ||
| - | Cube(int s); | + | Cube(int s, int updatecolor); |
| + | void setSize(int s); | ||
| }; | }; | ||
| - | Cube:: | + | Cube:: |
| + | color = updatecolor; | ||
| + | } | ||
| + | |||
| + | void Cube:: | ||
| setWidth(s); | setWidth(s); | ||
| + | //width = s; // this does not compile | ||
| setHeight(s); | setHeight(s); | ||
| setLength(s); | setLength(s); | ||
| - | color = updatecolor; | ||
| } | } | ||
| </ | </ | ||
| - | |||
| <code cpp CubeUsage.cpp> | <code cpp CubeUsage.cpp> | ||
| - | include " | + | #include " |
| int main() { | int main() { | ||
| Cuboid cuboid(1, | Cuboid cuboid(1, | ||
| + | // | ||
| Cube cube(1, 0xcccccc); | Cube cube(1, 0xcccccc); | ||
| + | cuboid.setWidth(5); | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | Από το παραπάνω παράδειγμα παρατηρούμε τα εξής: | ||
| + | - Τα πεδία //width//, //height// και //length// της κλάσης //Cuboid// είναι ορισμένα ως //private// και δεν είναι ορατά από τη συνάρτηση //main// ή την κλάση // | ||
| + | - Το πεδίο //color// είναι ορισμένο ως // | ||
| + | - Η μέθοδος // | ||
| + | </ | ||