Διαδρομές
/
C++
C++
/
Ύλη
/
Χώροι ονομάτων
Χώ

Χώροι ονομάτων σε C++

3 ασκήσεις

Σχετικά με την έννοια Χώροι ονομάτων

Ένας σημαντικός τρόπος για την οργάνωση του κώδικα είναι τα namespace. Δύο συναρτήσεις μπορεί να έχουν σύγκρουση ονομάτων, η οποία μπορεί να λυθεί βάζοντάς τες σε διαφορετικά namespace. Τα namespace μπορούν να είναι εμφωλευμένα, κάτι που μπορεί να βοηθήσει στη δόμηση μεγάλων βάσεων κώδικα. Η πρόσβαση στα namespace γίνεται μέσω του τελεστή ανάλυσης εμβέλειας ::.

Το παρακάτω παράδειγμα δείχνει τη χρήση δύο διαφορετικών συναρτήσεων foo. Χρησιμοποιούνται μαζί, βάζοντας μπροστά το namespace της καθεμιάς.

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Advanced

Τα βαθιά εμφωλευμένα namespace μπορεί να είναι υπερβολικά φλύαρα. Μπορείς να αφαιρέσεις τη φλυαρία με εισαγωγή namespace μέσω του using. Αυτό μεταφέρει όλα τα ονόματα στο καθολικό namespace. Για να κρατήσεις κάποια διάκριση, τα ψευδώνυμα μπορεί να φανούν χρήσιμα.

int my_other_result{my_ns::my_inner_ns::baz()};

using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};

namespace m = my_ns; // setting an alias
namespace o = my_other_ns;

int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Χώροι ονομάτων