Дано:Использование-декларации для перемещения имени в другое пространство имен?
namespace One {
void foo(int x) {
munch(x + 1);
}
};
namespace Two {
// ... see later
}
...
void somewhere() {
using namespace Two;
foo(42);
...
есть какая-то разница между следующими двумя вариантами:
)
namespace Two {
void foo(int x) {
munch(x + 1);
}
};
и б)
namespace Two {
using One::foo;
};
EDIT: Это довольно ясно, что (а) дублирует код, который никогда не должен быть хорошей идеей. Вопрос в большей степени касается разрешения перегрузки и т. Д. ... что, если есть другие foo
s или munch
es в возможно других пространствах имен?
«Использование One :: foo;» называется служебной декларацией; директива using - «использование пространства имен N;». – 2010-11-06 19:39:31