This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
cpp:namespace [2017/04/12 07:09] gthanos |
cpp:namespace [2021/05/06 22:52] |
||
|---|---|---|---|
| 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; | ||
| - | } | ||
| - | </ | ||