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)
