鉴于:
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);
}
};
b)
namespace Two {
using One::foo;
};
编辑:很明显,(a)重复了永远不是一个好主意的代码。问题更多的是关于重载解析等。如果在其他名称空间中可能还有其他foo
s 或munch
es 怎么办?