La direttiva using namespace
è utile quando hai spazi dei nomi che identificano il tuo progetto.
Supponiamo che tu abbia un progetto che utilizza gli spazi dei nomi developerIdentifier::projectName
. Quel progetto ha una classe exampleClass
e un insieme di funzioni di utilità sotto lo spazio dei nomi utils
. I nomi completi di questi sono developerIdentifier::projectName::exampleClass
e developerIdentifier::projectName::utils
.
Hai lo stub dell'intestazione exampleClass.hpp
:
#include "utils.hpp"
namespace developerIdentifier {
namespace projectName {
class exampleClass
{
public:
void function1();
void function2();
};
}
}
Il file di implementazione di corrispondenza exampleClass.cpp
ha using namespace developerIdentifier::projectName;
scritto in alto:
using namespace developerIdentifier::projectName;
void exampleClass::function1() { return utils::frobnicate(1, 2); };
void exampleClass::function2() {};
Poiché questa dichiarazione di using namespace
è nel file di implementazione, non inquinerà il namspace di alcuna classe che importa exampleClass.hpp
.
Questa dichiarazione ha due vantaggi:
- Non devi scrivere firme di funzioni completamente qualificate come
void developerIdentifier::projectName::exampleClass::function1()
in exampleClass.cpp
.
- Non devi qualificare completamente
developerIdentifier::projectName::utils::frobnicate()
in function1()
.