This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Previous revision | ||
|
cpp:namespace [2021/05/06 22:52] |
cpp:namespace [2021/05/06 23:52] gthanos [Παράδειγμα ορισμού και χρήσης μεταβλητών και μεθόδων με το ίδιο όνομα από δύο διαφορετικά namespaces] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Χώροι Ονομάτων (Namespaces) ====== | ||
| + | |||
| + | Προκειμένου να αποφεύγονται οι συγκρούσεις ονομάτων μεταξύ //global// μεταβλητών, | ||
| + | |||
| + | Ένα // | ||
| + | <code c++> | ||
| + | namespace identifier { | ||
| + | named_entities | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Για παράδειγμα | ||
| + | <code c++> | ||
| + | namespace constants { | ||
| + | const double golderRatio = 1.6180339887; | ||
| + | double gRatio() { return golderRatio; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Προσπέλαση των στοιχείων του namespace ===== | ||
| + | |||
| + | Η προσπέλαση/ | ||
| + | |||
| + | ==== Δηλώνοντας το namespace σε κάθε κλήση των περιεχομένων του με την βοήθεια του τελεστή :: ==== | ||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | Ο τελεστής ''::'' | ||
| + | </ | ||
| + | |||
| + | <code c++ namespace.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | namespace constants { | ||
| + | const double golderRatio = 1.6180339887; | ||
| + | double gRatio() { return golderRatio; | ||
| + | } | ||
| + | |||
| + | int main() { | ||
| + | cout << " | ||
| + | cout << " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Mε δήλωση μόνο των ονομάτων που θα χρησιμοποιηθούν ==== | ||
| + | |||
| + | Χρησιμοποιούμε την έκφραση '' | ||
| + | |||
| + | <code c++ namespace.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | namespace constants { | ||
| + | const double golderRatio = 1.6180339887; | ||
| + | double gRatio() { return golderRatio; | ||
| + | } | ||
| + | |||
| + | using constants:: | ||
| + | |||
| + | int main() { | ||
| + | cout << " | ||
| + | cout << " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Με δήλωση του namespace από το οποίο θα χρησιμοποιηθούν συγκεκριμένα ονόματα ==== | ||
| + | |||
| + | Χρησιμοποιούμε την έκφραση '' | ||
| + | <code c++ namespace.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | namespace constants { | ||
| + | const double golderRatio = 1.6180339887; | ||
| + | double gRatio() { return golderRatio; | ||
| + | } | ||
| + | |||
| + | using namespace constants; | ||
| + | |||
| + | int main() { | ||
| + | cout << " | ||
| + | cout << " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Παράδειγμα ορισμού και χρήσης μεταβλητών και μεθόδων με το ίδιο όνομα από δύο διαφορετικά namespaces ===== | ||
| + | |||
| + | Στο παράδειγμα που ακολουθεί ορίζονται δύο // | ||
| + | |||
| + | <code c++ nameVisibility.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | namespace euler { | ||
| + | const double var = 2.71828; | ||
| + | double value() { return var; } | ||
| + | } | ||
| + | |||
| + | namespace pi { | ||
| + | const double var = 3.1416; | ||
| + | double value() { return var; } | ||
| + | } | ||
| + | |||
| + | int main () { | ||
| + | cout << pi::var << ' | ||
| + | cout << pi::value() << ' | ||
| + | cout << euler::var << ' | ||
| + | cout << euler:: | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||