cpp:acccess_modifiers
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:acccess_modifiers [2017/04/20 14:11] – gthanos | cpp:acccess_modifiers [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Οι προσδιοριστές πρόσβασης επιτρέπουν την απόκρυψη της πληροφορίας που είναι από τις βασικές αρχές του αντικειμενοστραφή προγραμματισμού. Με την έννοια //" | Οι προσδιοριστές πρόσβασης επιτρέπουν την απόκρυψη της πληροφορίας που είναι από τις βασικές αρχές του αντικειμενοστραφή προγραμματισμού. Με την έννοια //" | ||
| - | Σε μία κλάση μπορούν να οριστούν οι προσδιοριστές πρόσβασης //public//, // | + | Σε μία κλάση μπορούν να οριστούν οι προσδιοριστές πρόσβασης //public//, // |
| - **public:** Ένα μέλος της κλάσης που δηλώνεται ως //public// είναι προσβάσιμο από οποιαδήποτε άλλη κλάση ή συνάρτηση που δεν ανήκει σε κλάση. | - **public:** Ένα μέλος της κλάσης που δηλώνεται ως //public// είναι προσβάσιμο από οποιαδήποτε άλλη κλάση ή συνάρτηση που δεν ανήκει σε κλάση. | ||
| - **protected: | - **protected: | ||
| - **private: | - **private: | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Εάν δεν οριστεί προσδιοριστής πρόσβασης σε μία κλάση τα πεδία και οι μέθοδοι της κλάσης ορίζονται ως // | ||
| + | </ | ||
| + | ===== Παράδειγμα χρήσης προσδιοριστών πρόσβασης ===== | ||
| Δείτε το παρακάτω παράδειγμα χρήσης των προσδιοριστών πρόσβασης μέσω των κλάσεων //Cuboid// (κυβοειδές) και //Cube// (κύβος) που κληρονομεί την κλάση //Cuboid//. | Δείτε το παρακάτω παράδειγμα χρήσης των προσδιοριστών πρόσβασης μέσω των κλάσεων //Cuboid// (κυβοειδές) και //Cube// (κύβος) που κληρονομεί την κλάση //Cuboid//. | ||
| - | <code cpp Cuboid.cpp> | + | <code cpp Cuboid.hpp> |
| #include < | #include < | ||
| using namespace std; | using namespace std; | ||
| Line 19: | Line 24: | ||
| protected: | protected: | ||
| int color; | int color; | ||
| + | public: | ||
| + | int borderWidth; | ||
| public: | public: | ||
| Cuboid(int w, int h, int l); | Cuboid(int w, int h, int l); | ||
| Line 42: | Line 49: | ||
| </ | </ | ||
| - | <code cpp Cube.cpp> | + | <code cpp Cube.hpp> |
| #include < | #include < | ||
| using namespace std; | using namespace std; | ||
| - | #include " | + | #include " |
| class Cube:Cuboid { // Cube extends Cuboid | class Cube:Cuboid { // Cube extends Cuboid | ||
| public: | public: | ||
| Cube(int s, int updatecolor); | Cube(int s, int updatecolor); | ||
| + | void setSize(int s); | ||
| }; | }; | ||
| Cube:: | Cube:: | ||
| color = updatecolor; | color = updatecolor; | ||
| + | } | ||
| + | |||
| + | void Cube:: | ||
| + | setWidth(s); | ||
| + | //width = s; // this does not compile | ||
| + | setHeight(s); | ||
| + | setLength(s); | ||
| } | } | ||
| </ | </ | ||
| + | Η δήλωση < | ||
| <code cpp CubeUsage.cpp> | <code cpp CubeUsage.cpp> | ||
| - | include "Cube.cpp" | + | #include "Cube.hpp" |
| int main() { | int main() { | ||
| Cuboid cuboid(1, | Cuboid cuboid(1, | ||
| + | // | ||
| + | cuboid.borderWidth = 5; | ||
| + | | ||
| Cube cube(1, 0xcccccc); | Cube cube(1, 0xcccccc); | ||
| + | cuboid.setWidth(5); | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | Από το παραπάνω παράδειγμα παρατηρούμε τα εξής: | ||
| + | - Τα πεδία //width//, //height// και //length// της κλάσης //Cuboid// είναι ορισμένα ως //private// και δεν είναι ορατά από τη συνάρτηση //main// ή την κλάση // | ||
| + | - Το πεδίο //color// είναι ορισμένο ως // | ||
| + | - Η μέθοδος // | ||
| + | </ | ||
cpp/acccess_modifiers.1492697515.txt.gz · Last modified: 2017/04/20 13:11 (external edit)
