C++ Namespace

Da Andreabont's Wiki.

Un namespace in C++ è uno spazio dove è possibile dichiarare funzioni, classi e variabili le quali non sono direttamente accessibili dall'esterno, per accedervi è necessario specificare il namespace. Questa funzionalità è spesso usata dalle librerie per evitare di generare incompatibilità con altre librerie causate da funzioni o classi chiamate allo stesso modo.

Dichiarazione

namespace mionamespace {
    void foo() {
        // Contenuto funzione
    }
}

int main() {
    mionamespace::foo(); // Chiamata
}

Namespace annidati

Versione base

namespace mionamespace {
    namespace sub {
        void foo() {
            // Contenuto funzione
        }
    }
}

int main() {
    mionamespace::sub::foo(); // Chiamata
}

Versione C++17

namespace mionamespace::sub {
    void foo() {
        // Contenuto funzione
    }
}

int main() {
    mionamespace::sub::foo(); // Chiamata
}

Trucchi

Namespace di default

E' possibile indicare un namespace come in uso corrente, in modo da non doverlo scrivere ad ogni accesso a ciò che contiene. Da usare con cautela.

using namespace nome_namespace;

Creare un alias di un namespace

E' possibile "rinominare" una lunga lista di namespace annidati per semplicità.

namespace nomebreve = namespace::molto::annidati::con::nomi::lunghi;