cpp:acccess_modifiers
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
cpp:acccess_modifiers [2017/04/20 13:24] – created 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//. | ||
+ | |||
+ | <code cpp Cuboid.hpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | class Cuboid { | ||
+ | private: | ||
+ | int width, height, length; | ||
+ | protected: | ||
+ | int color; | ||
+ | public: | ||
+ | int borderWidth; | ||
+ | public: | ||
+ | Cuboid(int w, int h, int l); | ||
+ | void setWidth(int w); | ||
+ | void setHeight(int h); | ||
+ | void setLength(int l); | ||
+ | int getWidth(); | ||
+ | int getHeight(); | ||
+ | int getLength(); | ||
+ | }; | ||
+ | |||
+ | Cuboid:: | ||
+ | width = w; height = h; length = l; | ||
+ | color = 0xffffff; | ||
+ | } | ||
+ | |||
+ | void Cuboid:: | ||
+ | void Cuboid:: | ||
+ | void Cuboid:: | ||
+ | int Cuboid:: | ||
+ | int Cuboid:: | ||
+ | int Cuboid:: | ||
+ | </ | ||
+ | |||
+ | <code cpp Cube.hpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | #include " | ||
+ | |||
+ | class Cube:Cuboid { // Cube extends Cuboid | ||
+ | public: | ||
+ | Cube(int s, int updatecolor); | ||
+ | void setSize(int s); | ||
+ | }; | ||
+ | |||
+ | Cube:: | ||
+ | color = updatecolor; | ||
+ | } | ||
+ | |||
+ | void Cube:: | ||
+ | setWidth(s); | ||
+ | //width = s; // this does not compile | ||
+ | setHeight(s); | ||
+ | setLength(s); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Η δήλωση < | ||
+ | |||
+ | <code cpp CubeUsage.cpp> | ||
+ | #include " | ||
+ | |||
+ | int main() { | ||
+ | Cuboid cuboid(1, | ||
+ | // | ||
+ | cuboid.borderWidth = 5; | ||
+ | | ||
+ | Cube cube(1, 0xcccccc); | ||
+ | cuboid.setWidth(5); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP center round tip 80%> | ||
+ | Από το παραπάνω παράδειγμα παρατηρούμε τα εξής: | ||
+ | - Τα πεδία //width//, //height// και //length// της κλάσης //Cuboid// είναι ορισμένα ως //private// και δεν είναι ορατά από τη συνάρτηση //main// ή την κλάση // | ||
+ | - Το πεδίο //color// είναι ορισμένο ως // | ||
+ | - Η μέθοδος // | ||
+ | </ | ||
+ |
cpp/acccess_modifiers.1492694653.txt.gz · Last modified: 2017/04/20 12:24 (external edit)