Étant donné:Utilisation de la déclaration pour déplacer le nom vers un autre espace de nom?
namespace One {
void foo(int x) {
munch(x + 1);
}
};
namespace Two {
// ... see later
}
...
void somewhere() {
using namespace Two;
foo(42);
...
est-il une différence entre les deux variantes suivantes:
a)
namespace Two {
void foo(int x) {
munch(x + 1);
}
};
et b)
namespace Two {
using One::foo;
};
EDIT: Il est assez clair que (a) duplique le code qui ne devrait jamais être une bonne idée. La question est plus sur la résolution de surcharge etc ... et s'il y a d'autres foo
s ou munch
es dans d'autres espaces de noms?
"en utilisant One :: foo;" est appelé une déclaration d'utilisation; une directive using est "using namespace N;". –