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)